find用法 以及和exec xargs 的组合使用

1、查找当前目录下所有的txt的文件

[root@master1 ~]# find . -name "*.txt" -type f
./a.txt
./b.txt

2、exec 结合  :查找当前目录下所有的txt的文件并读取文件内容

[root@master1 ~]# find . -name "*.txt" -type f -exec cat {} \;
1111a
2222a
33333b
44444b
[root@master1 ~]#

3、与xargs结合  :查找当前目录下所有的txt的文件并读取文件内容

[root@master1 ~]# find . -name "*.txt" -type f |xargs cat
1111a
2222a
33333b
44444b
[root@master1 ~]#

ps:exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数

     如果文件数量太多 建议不要使用xargs  linux有参数上限限制的

4、find 有时候删除大量文件的时候很有用  可以用上面的命令结合来删  只要吧cat  换成 rm -f  就行了  但我这里提供一个新思路  用find 自带的delete 更快一点 也更灵活简单

find . -name "*.txt" -type f -delete

5、find检索可以做到与或的检索

    比如检索 a开头的文件 或者b开头的文件   -o  参数 代表 or

[root@master1 ~]# find . -name "a.*" -o -name "b.*" -type f
./a.txt
./b.txt

比如查找a开头的文件且 是txt文件类型的  -a 参数表示 and

[root@master1 ~]# find . -name "a.*" -a -name "*.txt" -type f
./a.txt
[root@master1 ~]#

6、其他常用参数列一下

-size +100M   文件大于100M的
-atime +1       文件访问时间大于1天的
-amin  +30      文件访问时间大于30分钟的
-mtime +1      文件修改时间一天以上的
-mmin +30     文件修改时间30分钟以上的
-perm 644      文件权限是644的 即 rw-r--r--
-user xxx        可以指定文件用户
-group   xxx    可以指定文件属组
原文地址:https://www.cnblogs.com/xlovepython/p/14524586.html