【Linux】find 命令详解及使用示例:递归查找文件和目录
引言
find
是 Linux/Unix 系统中强大的文件搜索工具,用于在目录层次结构中递归查找文件和目录。它提供了丰富的搜索条件和灵活的操作选项,可以满足从简单到复杂的各种文件查找需求。
基本功能
- 文件查找:根据名称、类型、大小、日期等条件搜索文件
- 条件筛选:支持多种过滤条件的组合和逻辑运算
- 执行操作:可对找到的文件执行命令
常用查找条件
-
名称相关:
-name "模式"
:按文件名查找,支持通配符-iname "模式"
:按文件名查找,忽略大小写-path "模式"
:按文件路径查找
-
类型相关:
-type f
:查找普通文件-type d
:查找目录-type l
:查找符号链接
-
时间相关:
-mtime +/-n
:按修改时间查找(n天前/内)-atime +/-n
:按访问时间查找-ctime +/-n
:按状态改变时间查找-newer file
:查找比指定文件更新的文件
-
大小相关:
-size +/-n[cwbkMG]
:按文件大小查找
-
权限相关:
-perm 权限模式
:按权限查找-user 用户名
:按所有者查找-group 组名
:按所属组查找
-
深度相关:
-maxdepth n
:最大搜索深度-mindepth n
:最小搜索深度
常用操作
-print
:默认操作,打印匹配文件的路径-exec command {} \;
:对每个匹配文件执行命令-exec command {} +
:将多个匹配文件作为参数执行命令-delete
:删除匹配的文件-ls
:显示文件的详细信息
逻辑操作符
-a
或默认无操作符:逻辑与-o
:逻辑或!
:逻辑非()
:分组条件(需要转义:\( \)
)
使用示例
- 列出/bin目录下普通文件的个数
find /bin -type f | wc -l
参考资料
- https://www.runoob.com/linux/linux-comm-find.html