语法
find path test action
说明
path 表示 find 的目标路径,可以用空格隔开多个路径
如
find ./ ../ -name "*.jpg"
# 此表示在本目录和上一级目录中查找所有 jpg 文件
test 表示目标需要符合的条件,同样可以用空格隔开多个条件
如
find / -name ".*jpg" # 查找所有 jpg 文件
find ./ -tpye f # 在当前目录查找所有 file
find ./ -type d # 在单前目录查找所有 目录
find ./ -mmine +5 f # 在当前目录最后 5 分钟内被修改过的文件
具体的 test 表
| 条件 | 说明 |
|---|---|
| -name pattern | 表示包含指定匹配模式的文件名,区分大小写 |
| -type pattern | 指定文件类型 |
| -perm mode | 匹配权限被设置为指定 mode 的文件 |
| -user userid | 匹配所有者为指定用户 id 的文件 < |
| -group groupid | 匹配所有者的主组为指定组 id 的文件 |
| -size size | 匹配大小为 size 的文件 |
| -empty | 匹配空文件 |
| -amin [-+]n | 文件最后一次访问时间,-n 表示访问时间为距今 n 分钟以内,+n 表示访问时间为距今 n 分钟以前,n 表示恰好 n 分钟 |
| -atime [-+]n | 文件最后一次访问时间,时间单位为天 |
| -cmin [-+]n | 文件最后一次状态改变的时间,时间单位为分钟 |
| -ctime [-+]n | 文件最后一次状态改变的时间,时间单位为天 |
| -mmin [-+]n | 文件最后一次被修改的时间,时间单位为分钟 |
| -mtime [-+]n | 文件最后一次被修改的时间,时间单位为天 |
action 表示对 find 结果进行操作
具体的 action 表
| 动作 | 说明 |
|---|---|
| 默认动作,将结果写入到标准输出 | |
| -fprint file | 将结果写入到文件 file |
| -ls | 以详细格式显示搜索结果 |
| -fls file | 将详细格式的结果写入到文件 file |
| -delete | 将搜索到的文件删除 < |
| -exec command {} ; | 查找并执行命令,{} 表示搜索到的文件名 |
| -ok command {} ; | 查找并执行命令,但是需要用户确认 |
如
find ./ -name ".jpg" -exec rm -rf {} \;
# 删除当前目录下的所有 jpg 文件
# 当然可以直接 rm -rf *.jpg