find,Linux常用文件搜索命令简要整理
基本用法
find基本用法如:find [path] <search regular> [action]
- 可选参数path,支持空格分隔的多路径查找,默认为当前路径
- 可选参数action
- -print,匹配文件输出到stdout,默认
- -exec,对find匹配到的文件执行该参数所给出的shell命令,格式为command { } \;,其中{}表示匹配文件
- -ok,于-exec类似,执行前给出提示是否执行
文件名
1
2
3find [path] -name <name>
find [path] -iname <name> #不区分大小写
其中<name>支持通配符,一般使用时建议增加单引号文件类型,一般配合其他搜索参数一起使用
1
2find [path] -type [bdcplf]
其中d表示目录,l表示链接,f表示文件文件大小
1
2
3-size 参数支持+-表示大于小于,ckMG表示数据单位
find [path] -size +10M #path下大于10M的文件
find [path] -size -1G #path下小于1G的文件时间戳
1
2
3
4find [path] -mtime -n +m #更改时间为m天前n天内的文件
find [path] -atime -n +m #访问时间
find [path] -ctime -n +m #创建时间
mtime参数后数字表示天, mmin参数后数字表示分钟文件属主
1
2
3
4find [path] -user <user_name> #path下属主为user_name的文件
find [path] -group <group_name> #path下组名为group_name的文件
find [path] -nouser #用户ID不存在的文件
find [path] -nogroup #组ID不存在的文件文件权限
1
2
3
4find [path] -perm 755 #权限设置为755的文件
find [path] -perm -u=r #文件属主有读权限的目录或文件
find [path] -perm -g=r #用户组有读权限的目录或文件
find [path] -perm -o=r #其它用户有读权限的目录或文件其他搜索参数
1
2
3
4find [path] <search_regular> [option]
-follow 追踪链接文件
-mount 不跨越文件系统mount点
-empty 空文件
示例
多筛选条件组合
1
2
3
4find [path] -name '*R' -a -mtime -1 #修改时间一天内的R脚本文件
-a | -and # 同时满足
-o | -or # 或
-not # 条件取反几个例子,来自微博@linux命令行精选网
1
2
3
4
5
6find . ! -name <NAME> -delete #用find删除文件时候排除特定文件
find . -type l -xtype l #查找失效的符号链接
find . -iname '*.jpg' | sed 's/.*/<img src="&">/' > gallery.html #生成html 相册
find . -size 0 -exec rm '{}' \; #清理空文件
find . -type d -exec mkdir -p $DESTDIR/{} \; #复制一个目录的结构,忽略文件
find . -type f -size +500M -exec ls -ls {} \; | sort -n #找出所有大于500M的文件