linux系统查找文件命令find,xargs

版权声明:小妖666个人笔记 https://blog.csdn.net/weixin_38883338/article/details/86382502

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选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

猜你喜欢

转载自blog.csdn.net/weixin_38883338/article/details/86382502