语法
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