find 用于查找文件或者目录, 同时 find 还有部分增强功能, 用于对查找到的内容进行处理.

按名字查找所有 html 文件

find . -name "*.html"

按大小查找文件

查找 大于 9M 的文件

find . -size +9M

查找小于9k的小文件

find . -size -9k

精确查找大小为1234 bytes的文件

find . -size 1234c

对查找到内容进行处理

删除后缀为 ~的临时文件

find . -name "*~" -exec rm {} \;

在执行删除操作前,建议使用 find . -name "*~" 验证find查找到的内容, 确认后在执行删除操作, 删除操作风险较高,不容易恢复, 建议将 rm 设置为 trash 命令的别名, 将删除的文件先放置到回收站

当然还有更直接的 -delete 选项, 用于将find的命令匹配到的文件删除, 下述命令和上面功能一致.

find . -name "*~" -delete

-delete选项更快, -exec 选项需要构建子进程来执行对应命令.

  • -delete有个隐含的选项 -depth
  • -depth 意味着优先处理目录内内容(默认情况下, 优先处理目录)

-delete 选项是务必先使用find命令验证,避免误删除.

删除所有空文件

find . -type f -empty
find . -type f -empty -delete

删除空目录

find . -depth -empty -type d
find . -depth -empty -type d -delete

查找最近修改的文件

查找60分钟内文件状态变化的文件

find . -cmin -60

查找60分钟内文件被修改的文件

find . -mmin -60

查找60分钟内容被访问的文件

find . -amin -60

find 命令和 xargs 命令配合使用

查找当前目录下的所有内容, 并打印到屏幕

find . -print0 | xargs -0 -l -i echo "{}";
  • -print0 使用 null 字符作为文件名的分隔符, 默认情况下, -print 选项是构建一个换行符输出.
  • -0 将管道输入内容以 null 字符来分隔
  • -l 一次仅仅传递一个文件名
  • -i 使用 {} 作为文件名的占位符
  • {} 占位符, 表示引用整个文件名

参考链接

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: find, 搜索

添加新评论