find
基本语法(Synopsis)
find [PATH ...] [EXPRESSION][] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。
基本功能与推荐用法
find 按路径、文件类型、名称、时间、大小等条件递归搜索文件系统,并可对结果执行操作。
find . -type f -name '*.md'
find . -type f -mtime -7
find . -type f -size +100M -print
find . -type d -empty -print
find . -type f -name '*.log' -exec wc -l -- {} \;
find . -type f -name '*.tmp' -print # 删除前先预览推荐:
- 把搜索起点放在表达式之前,并用引号保护
*.md等 glob,避免被 Shell 提前展开。 - 单个文件操作优先使用
-exec ... {} \;;批量传参可使用-exec ... {} +。 - 需要把任意文件名安全传给其他命令时,使用
-print0并交给 xargs 的-0。
find -delete等操作不可恢复。先使用完全相同的条件配合
示例中的选项、参数与子命令
本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。
| 语法元素 | 含义 |
|---|---|
PATH | 搜索起点;示例中的 . 表示当前目录。 |
-type f | 只匹配普通文件。 |
-type d | 只匹配目录。 |
-name GLOB | 按文件名 glob 匹配;通常应给 GLOB 加引号。 |
-mtime -7 | 匹配最近 7 个 24 小时内修改的条目。 |
-size +100M | 匹配大于 100 MiB 的条目。 |
-empty | 匹配空文件或空目录。 |
-print | 输出匹配路径。 |
-exec COMMAND {} \; | 为每个结果执行一次 COMMAND,{} 代表当前路径。 |
wc -l -- FILE | 统计文件的换行符数量;-- 结束 wc 的选项解析。 |