参数
代码语言:javascript复制-maxdepth # 最大搜索目录深度
-mindepth # 最小搜索目录深度
-regex 'pattern' # 使用正则表达式
-user USERNAME # 查找属主为指定用户的文件
-group GROUPNAME # 查找属组为指定组的文件
-uid USERID # 查找属主为指定uid的文件
-gid GROUPID # 查找属组为指定gid的文件
-nouser # 查找没有属主的文件
-nogroup # 查找没有属组的文件
-type
f # 普通文件
d # 目录
l # 符号链接文件
s # 套接字文件
b # 块设备文件
c # 字符设备文件
p # 管道文件
-empty # 空文件或目录
-size # 按文件大小查找,单位:k,M,G,c(字节)
查找条件
根据时间戳
- 以“天”为单位
-atime n # 范围:[n,n 1],不包括n 1
-atime n # 范围:[n 1,无穷大]
-atime -n # 范围:[0,n),不包括n
-mtime
-ctime
n 查找距现在(n 1)24H前修改过的文件 n 查找距现在n24H前,(n 1)24H内修改过的文件 -n 查找距现在n24H内修改过的文件 atime:最后一次访问时间,如ls、more等,但chmod、chown等不会修改这些时间 ctime:最后一次状态修改时间 mtime:最后一次内容修改时间,如vim保存后,修改时间发生改变的话,atime和ctime也会跟着发生改变 linux不会记录文件的创建时间,除非这个文件自创建以来没有发生过改变,那么它的创建时间就是它的最后一次修改时间
- 以“分钟”为单位
-amin
-mmin
-cmin
- 根据权限查找
-perm [/|-]mode
如:find ./ -perm 755 -ls # 搜索权限为755的文件
find ./ -perm /777 -ls # u,g,o只要有任意一位匹配权限7即可
find ./ -perm -777 -ls # u,g,o必须同时匹配权限7
- 其他选项
-print:显示到屏幕上
find ./ -name "*.log" -print
-ls:类型于ls -l命令
find ./ -name "*.log" -ls
-delete:删除查找到的文件
find ./ -name "*.log" -delete
-fls FILE_NAME:把查找到的文件信息保存到文件中
find ./ -name "*.log" -fls log.txt
-ok rm {} ; # 删除查找到的文件,由用户确认是否删除
find ./ -name "*.log" -ok rm {} ; # {}为变量,是前面查找到的文件名
-exec rm {} ; # 删除查找到的文件,不需要确认
find ./ -name "*.log" -exec rm {} ;
find ./ -name "*.log" -exec cp {} /data/ ;