语法

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 表

动作 说明
-print 默认动作,将结果写入到标准输出
-fprint file 将结果写入到文件 file
-ls 以详细格式显示搜索结果
-fls file 将详细格式的结果写入到文件 file
-delete 将搜索到的文件删除 <
-exec command {} ; 查找并执行命令,{} 表示搜索到的文件名
-ok command {} ; 查找并执行命令,但是需要用户确认

find ./ -name ".jpg" -exec rm -rf {} \;
# 删除当前目录下的所有 jpg 文件
# 当然可以直接 rm -rf *.jpg