FIND命令形式:
find pathname -options [-print -exec -ok]
pathname要查找的路径(.表示当前目录,/表示系统根目录)
-print 输出
-exec 对匹配的文件执行该参数所给出的shell命令-exec rm {} \;注意{ }和\;之间的空格
-ok以一种更为安全的模式来执行shell命令
find命令有很多选项或表达式,每一个选项前面跟随一个横杠-。
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
-newer file1 ! file2 查找更改时间比文件f i l e 1新但比文件f i l e 2旧的文件
-type 查找某一类型的文件,诸如:
d - 目录
c - 字符设备文件
l - 符号链接文件
f - 普通文件
使用name选项
波浪号~代表了你的home目录
find ~ -name "*.txt" -print
当前目录及子目录中查找文件名以一个大写字母开头的文件
find . -name "[A-Z]*" -print
find . -name "[a-z][a-z][0--9][0--9].txt" -print
使用size选项
当前目录下查找文件长度大于1 M字节的文件
find . -size +1000000c -print
在/home/apache目录下查找文件长度恰好为1 0 0字节的文件
find /home/apache -size 100c -print
用exec或ok来执行shell命令
当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用-exec选项。
在/logs目录中查找更改时间在5日以前的文件并删除它们
find logs -type f -mtime +5 -exec rm {} \;
xargs
在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但是有些系统对传递
exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。
这时就需要用到xargs命令。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像
-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
标签:文件,xargs,exec,查找文件,命令,linux,print,find From: https://blog.51cto.com/u_12374018/6195602