分类:
2008-06-28 00:38:04
-exec find命令对匹配到的文件执行exec后面的shell命令,格式为 –exec ‘command’ {} \;
{} 和 \;之间有一个空格
Option:
-name :按照文件名查找
要将文件名用引号引起来。
要想查找目录及子目录中文件名以一个答谢字母开头的文件:
Find . –name “[A-Z]*” –print
要想查找当前目录文件名以两个小写字母开头,跟着是2个数字的.txt文件:
Find . –name “[a-z][a-z][0--9][0--9]*.txt “-print
-perm: 按照文件权限来查找
用于找到所有用户具有执行权限的文件,或查看某个用户目录下文件的权限比较方便
在当前目录下查找宿主具有可读、写、执行的文件
find . –perm 755 -print
查找所有用户具有可读、写、执行(这种情况要小心)的文件
find –perm -7 –print
-prune 忽略某个目录
如果在查找文件时候要忽略某个目录,可以使用此选项,但是如果使用了-depth选项则-prune选项就会被忽略。
user和nouser
:按照文件的宿主查找
如在$HOME目录下查找文件宿主为wangp的文件:
find ~ -user wangp –print
查找/etc/password中不存在的用户所属的文件
find /home –nouser –print
group 和
nogroup 针对用户所属的组 同上
-mtime按照更改时间查找
查找根目录下更改时间在5日内的文件:
find / -mtime -5 –print
查找/home下更改时间在3日前的文件
find /hone –mtime +3 –print
-newer 查找比某个文件新或旧的文件:
-newer newer_file ! oldest_file
查找/home下更改时间比file1 新但是比file2 旧的文件
find /home -newer file1 ! newer file2 –exec ls –l {} \;
如果想查找更改时间在2个小时内的文件,除非刚好有一个文件更改时间在2小时前,否则没有可以比较的文件,为此可以创建一个所需要的日期时间戳,可以用touch
touch –t 02032130 file
find . –newer file –print
-type 查找文件类型为type的文件 d
l c b p s f
-size 按照文件的长度来查找 长度既可以用块也可以用字节来计量,字节用Nc 来标识
查找文件长度大于
find . –type f –size +
查找刚好为100字节的文件
find /home –size
查找长度小于10块的文件:
find . –szie -10 –pirnt
-depth 可以先匹配所有文件,再在子目录中查找
find 从根目录查找一个名为con.file的文件,它先将匹配所有的文件然后在进入子目录查找
find / -name “conf.file”
–depth –print
-mount: 在当前文件系统下查询,不进入其他文件系统
-exec 或ok: 将查到的文件使用shell命令来执行在/log目录中查找更改时间在5日前的文件并删除它们:
find /log - type f –mtime +5 –exec rm {} \;
exec的安全模式为
ok, 它可以在执行某些shell时候给予提示
[root@wangp myproject]# find ./test -mtime -2 -ok rm {} \;
< rm ... ./test > ?
xargs: 在使用-exec选项处理匹配到的文件时,find命令将匹配到的文件一起传递给exec执行,有些系统对exec的命令长度有限制,在find运行几分钟后,出现“参数列太长”“参数溢出”