Linux的find命令

Shell代码
1.# find pathname -options [-print -exec -ok]
# find pathname -options [-print -exec -ok]
让我们来看看该命令的参数:
pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print find命令将匹配的文件输出到标准输出。
-exec find命令对匹配的文件执行该参数所给出的shell命令。
-ok 和- exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行.
find命令选项
1. -name 按照文件名查找文件

Java代码
1.find -name test.txt
2.# find ~ -name "xxx.txt" -print// ~ 表示$HOME目录
3.# find . -name "xxx.txt" -print// . 表示当前目录
4.# find /etc -name "host*" -print// / 在指定目录中查找
find -name test.txt
# find ~ -name "xxx.txt" -print// ~ 表示$HOME目录
# find . -name "xxx.txt" -print// . 表示当前目录
# find /etc -name "host*" -print// / 在指定目录中查找

2.-perm 按照文件权限来查找文件

Java代码
1.find -perm 755
2.# find ~ -perm 755 -print // 意义同name属性
3.# find . -perm 755 -print
4.# find /home -perm 755 -print
find -perm 755
# find ~ -perm 755 -print // 意义同name属性
# find . -perm 755 -print
# find /home -perm 755 -print

3.-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。

Java代码
1.find -mtime -2
find -mtime -2
如果想使用find命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成
的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件,为了解决
这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。这可以用touch
命令来实现,假设现在的时间是21:40,希望查找更改时间在两个小时以内的文件,可以首先创建这样

Java代码
1.# touch -t 02032140 dstamp
2.# ls -l dstamp
3.-rw-r--r-- 1 root root 0 2月 3 21:40 dstamp
4.# find . -newer dstamp
# touch -t 02032140 dstamp
# ls -l dstamp
-rw-r--r-- 1 root root 0 2月 3 21:40 dstamp
# find . -newer dstamp
一个文件
4.-newer file1 查找更改时间比文件file1新的文件。

Java代码
1.# find -newer test.txt
# find -newer test.txt
5.-type 查找某一类型的文件
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

Java代码
1.# find -type d
2.# find . ! -type d //查找当前目录下不是目录文件的其他文件
3.# find ~ -type d//意义同name
4.# find /etc -type d//意义同name
# find -type d
# find . ! -type d //查找当前目录下不是目录文件的其他文件
# find ~ -type d//意义同name
# find /etc -type d//意义同name

6.使用size选项
可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为 Nc;以块计量文件长度只用数字表示即可。

Java代码
1.# find . -size -1000000c//当前目录下查找文件长度小于1M字节的文件
2.# find . -size +100c
# find . -size -1000000c//当前目录下查找文件长度小于1M字节的文件
# find . -size +100c
7 find 和 xargs
在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递
给exee执行

Java代码
1.# find . -name "core" -print | xargs echo "" >/tmp/core.log//整个系统中查找内存信息转储文件然后把结果保存到/tmp/core.log 文件中
2.# find /apps/audit -perm -7 -print | xargs chmod o-w//在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
3.# find / -type f -print | xargs grep "device"//用grep命令在所有的普通文件中搜索device这个词
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值