Linux 文件处理工具(find)
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
使用{}
作为文件名的占位符{}
占位符, 表示引用整个文件名