以下是对 find 命令更详细的解释
基本语法:find [起始路径] [表达式]
起始路径:指定开始查找的目录位置。
表达式:可以包含以下常见元素:
-name "文件名":精确查找指定名称的文件或目录。
-iname "文件名":不区分大小写地查找。
-type 类型:如 f(文件)、d(目录)等。
-size 大小:例如 -size +1M(大于 1M 的文件)、-size -10k(小于 10k 的文件)等。
-mtime 时间:根据文件修改时间进行筛选,如 -mtime -7(7 天内修改的文件)。
-atime 时间:根据文件访问时间。
-ctime 时间:根据文件状态改变时间。
-user 用户名:查找属于指定用户的文件。
-group 组名:查找属于指定组的文件。
-exec 命令 {} ;:对找到的每个文件执行指定的命令。
find 命令参数举例:
-name:
find /etc -name "passwd":在/etc 目录下查找名为"passwd"的文件。
-iname:
find /var -iname "log*":不区分大小写地查找/var 目录下以"log"开头的文件。
-type:
find / -type d:查找整个系统中的所有目录。
find ./ -type f:在当前目录下查找所有文件。
-size:
find /var/log -size +10M:在/var/log 目录下查找大于 10MB 的文件。
find /tmp -size -1k:在/tmp 目录下查找小于 1KB 的文件。
-mtime:
find /home -mtime -7:查找/home 目录下 7 天内修改过的文件。
find /opt -mtime +365:查找/opt 目录下超过 1 年(365 天)前修改的文件。
-atime:
find /usr/bin -atime -30:查找/usr/bin 目录下 30 天内被访问过的文件。
-ctime:
find /etc -ctime +60:查找/etc 目录下 60 天前状态改变过的文件。
-user:
find /home -user joe:查找/home 目录下属于用户 joe 的文件。
-group:
find / -group staff:查找整个系统中属于组 staff 的文件。
-exec:
find /var -name "*.log" -exec grep "error" {} ;:在/var 目录下所有.log 文件中查找包含"error"的行。
find . -type f -exec chmod 644 {} ;:对当前目录下所有文件执行修改权限为 644 的操作。