Linux find 命令笔记
一. 基本查找
查找指定目录中的所有文件和目录
1 | find /home/user |
查找指定目录中的指定文件
查找 /etc 目录下的 hosts 文件。
1 | find /etc -name "hosts" |
1 | ╭─zsf@xiaotupo ~/hexo_blog ‹main*› |
按文件类型查找
- 查找指定目录中的所有目录:
find /var -type d - 查找指定目录中的所有普通文件:
find /tmp -type f
按文件大小查找
- 查找指定目录下大于某个大小的文件
语法:
1 | find /path/to/directory -size +n[ckMG] |
参数:
n为数字c表示字节k表示千字节M表示兆字节G表示吉字节
例子:
在 /home/user 目录中查找大于 10Mb 的文件。
1 | find /home/user -size +10M |
- 查找指定目录下小于某个大小的文件
和查找指定目录中大于某个大小的文件方法类似,只不过是把 -size 后面的 + 号换成了 - 号而已。
按文件修改时间查找
- 查找指定目录中过去
n天内修改过的文件
语法:
1 | find /path/to/directory -mtime -n |
例子:
查找过去7天内修改过的文件:
1 | find /opt -mtime -7 |
- 查找指定目录下过去
n天前修改过的文件
和过去 n 天内修改过的文件的查找方法类似,只是把 - 号换成了 +。
逻辑组合查找
- 使用
-and或-a连接多个条件进行与操作。例如:查找/data目录下即大于 10MB 又在过去7天内修改过的文件
1 | find /data -size +10M -a -mtime -7 |
- 使用
-or或-o连接多个条件进行或操作。例如:查找/backup目录下文件名包含backup或者扩展名为.bak的文件
1 | find /backup \( -name "*backup*" -o -name "*.bak") |
执行操作
在茶找到文件后,可以使用 -exec 选项对查找到的文件执行相应的操作。例如:删除 /tmp 目录下所有扩展名为 .log 的文件
1 | find /tmp -name "*.log" -exec rm {} \; |
这里的 {} 表示查找到的文件名,\; 是 -exec 命令的结束标志。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小土坡的博客!





