find
find 命令用于在指定目录下查找文件和目录,它可以使用不同的选项来过滤和限制查找的结果
find [路径] [选项] [动作]
- 选项
选项参数 | 功能 |
---|---|
-name <字符串> | 按照文件名查找文件,字串内可用通配符 *、?、[ ] |
-iname <字符串> | 按照文件名查找文件(忽略大小写) |
-type | 根据文件类型进行搜索,f(普通文件)、d(目录)、l(符号链接) |
-perm | 按照文件权限来查找文件 |
-user | 按照文件属主来查找文件 |
-group | 按照文件所属的组来查找文件 |
-size | 按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小 |
-atime n | 查找n天前被访问过的所有文件 |
-ctime n | 查找n天前文件状态被修改过的所有文件 |
-mtime n | 查找n天以前文件内容被修改过的所有文件 |
-
关于时间 n 参数的说明:
+n:查找比 n 天前更早的文件或目录。
-n:查找在 n 天内更改过属性的文件或目录。
n:查找在 n 天前(指定那一天)更改过属性的文件或目录。
-
常用动作
动作参数 | 功能 |
---|---|
默认动作,将匹配的文件输出到标准输出 | |
-exec | 对匹配的文件执行该参数所给出的命令,相应命令的形式为 'command' { } \; |
-delete | 将匹配到的文件删除 |
- 实例
bash
# 删除180天之前的文件
find /directory -type f -mtime 180 -exec rm -f {} \;
{} 将会被匹配到的文件名替代
\; 表示命令结束