Linux的find命令是一个非常强大的工具,用于在文件系统中搜索文件和目录,它支持递归查找,即可以搜索指定目录及其所有子目录中的文件和目录。
find命令的基本语法:
(图片来源网络,侵删)
find [path] [expression]
path: 要搜索的起始目录路径,默认为当前目录(.)。
expression: 指定搜索条件的表达式。
递归查找示例:
1、基本递归查找:
在当前目录及其子目录下查找以.txt
结尾的文件:
(图片来源网络,侵删)
find . -name "*.txt"
2、忽略大小写的递归查找:
在当前目录及其子目录下查找文件名包含example
的文件,不区分大小写:
find . -iname "*example*"
3、按文件类型递归查找:
在当前目录及其子目录下查找所有的目录:
find . -type d
查找所有的普通文件:
(图片来源网络,侵删)
find . -type f
4、按文件大小递归查找:
查找大于10MB的文件:
find /path/to/search -size +10M
查找小于1KB的文件:
find /path/to/search -size -1k
5、按文件修改时间递归查找:
查找最近7天内修改过的文件:
find /path/to/search -mtime -7
查找7天前修改过的文件:
find /path/to/search -mtime +7
6、按文件权限递归查找:
查找权限为755的文件:
find /path/to/search -perm 755
查找具有写权限的文件:
find /path/to/search -perm -u=w,g=w,o=w
7、排除特定目录:
在递归查找时排除某些目录,例如排除dir1
和dir2
:
find . -path dir1 -prune -o -path dir2 -prune -o -name "*.txt" -print
8、对搜索结果执行操作:
删除找到的所有.tmp
文件:
find /path/to/search -name "*.tmp" -exec rm {} ;
将找到的所有文件复制到另一个目录:
find /path/to/search -name "*.txt" -exec cp {} /destination/path/ ;
注意事项:
find
命令会递归地搜索指定目录及其所有子目录,因此可能会返回大量的结果。
使用find
命令时要小心,特别是在执行删除或其他危险操作时,确保条件正确以避免意外删除重要文件。
对于非常大的目录结构,find
命令可能需要一些时间来完成搜索。
通过结合不同的选项和参数,find
命令可以实现非常灵活和强大的文件搜索功能。
小伙伴们,上文介绍linux find 递归查找的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/80846.html