Bash: find 命令学习

shell 命令奇技淫巧之 find
更新于: 2023-04-19 21:00:32

cheatsheet

功能代码
查找当前目录
find .
查找 /var/log 目录
find /var/log/
-type d 只查找目录
find /var/log/ -type d
-type f 只查找文件
find /var/log/ -type f
-name 查找 yum.log 文件
find /var/log/ -type f -name "yum.log"
-iname 忽略大小写
find /var/log/ -type f -iname "yum.log"
* 支持通配符查找
find /var/log/ -type f -iname "*.LOG"
-size 查找 100MB 以内的文件
find /var/log/ -type f -iname "*.log" -size -100MB
-size 查换 100MB 以外的文件
find /var/log/ -type f -iname "*.log" -size +100MB
-mtime 查找7天以内有改动的文件
find /var/log/ -type f -iname "*.log" -mtime -7
-mtime 查找7天以外有改动的文件
find /var/log/ -type f -iname "*.log" -mtime +7
-exec 查找并列出 7天 以外有改动的文件
find /var/log/ -type f -iname "*.log" -mtime +7 -exec ls -l {} \;
-exec 查找并删除 7天 以外有改动的文件
find /var/log/ -type f -iname "*.log" -mtime +7 -exec rm -rf {} \;

命令解释

这个命令是在 Linux/Unix 操作系统中使用的命令。它的作用是在 /var/log/ 目录下查找所有类型为文件且后缀名为 .log 的文件,且最后修改时间(mtime)距离当前时间超过 7 天,然后使用 rm -rf 命令删除它们。其中:

  • find 是一个用于查找文件的命令,后面可以跟一些参数和选项来限制查找范围和条件。
  • /var/log/ 是查找的起始目录。
  • -type f 表示查找类型为文件的项,排除目录和其他类型的项。
  • -iname "*.log" 表示查找文件名中后缀为 .log(忽略大小写)的项。
  • -mtime +7 表示查找最后修改时间(mtime)距离当前时间超过 7 天的项。
  • -exec rm -rf {} \; 表示对每一个找到的项执行 rm -rf 命令,其中 {} 会被替换为实际找到的文件路径。

需要注意的是,这个命令会直接删除符合条件的文件,所以在使用时需要谨慎。建议在测试过程中先不要使用 -exec 参数,而是先查看找到的文件是否正确,再决定是否删除。

参考