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 可以指定文件属组