Linux之find搜索指令
find命令用来在指定目录下查找文件。
命令格式
find [搜索路径] [选项] [条件]
搜索路径省略默认为当前目录,相当于 find.
条件使用 ""或者''括起来,效果一样
选项
-name 按照文件名称搜索,支持通配符模糊查询
-iname 此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别
-path 查找路径包含范本样式的文件或目录
-regex 正则表达式搜索
-iregex 正则表达式搜索,与“-regex”类似,但是忽略大小写
-size [+|-] 文件大小[cwbkMG],查找符合指定文件大小的文件
* "+" 的意思是搜索比指定大小还要大的文件
* "-" 的意思是搜索比指定大小还要小的文件
* "cwbkMG" 是单位,c-字节、w-字(2字节)、b-块(512字节)、k-千字节、M-兆字节、G-吉字节,不写默认是b
-atime [+|-] 天数,按照文件最后一次访问时间搜索,单位每天
* "+"、"-" 的意思,5代表5天前那一天,"+5"代表超过5天前的时间,"-5"代表5天内的时间
-mtime [+|-] 天数,按照文件最后一次修改时间搜索,单位每天
-ctime [+|-] 天数,按照文件元数据(权限等)最后一次修改时间搜索,单位每天
-amin [+|-] 分钟数,按照文件最后一次访问时间搜索,单位每分钟
-mmin [+|-] 分钟数,按照文件最后一次修改时间搜索,单位每分钟
-cmin [+|-] 分钟数,按照文件元数据(权限等)最后一次修改时间搜索,单位每分钟
-perm [+|-] 权限数值,查找符合指定权限数值的文件或者目录,"-766"表示文件权限必须全部包含766,"+766"表示文件权限包含766任意一个权限
-uid 用户ID,查找所有者是指定以用户ID的文件
-user 用户名,查找所有者是指定以用户名的文件
-gid 组ID,查找所有组是指定组ID的文件
-group 组名,查找所有组是指定组名的文件
-nouser 查找没有所有者的文件
【说明】-nouser
-nouser 查找没有所有者的文件比较常用,主要用来查找垃圾文件,或者外来文件。如光盘,U盘,其他方式复制进来的文件。源码包安装的文件也可能无所有者。
-type 文件类型
* f 普通文件
* l 符号链接
* d 目录
* c 字符设备
* b 块设备
* s 套接字
* p Fifo
-empty 查找文件大小为0的文件
例子
[root@localhost opt]# find --与find .相同,查找当前目录下所有
[root@localhost opt]# find .
[root@localhost /]# find -name "*.txt" --查找所有的.txt文件
[root@localhost /]# find /opt -name "*.txt" --查找/opt下所有的.txt文件
[root@localhost /]# find /opt \( -name "*.txt" -o -name "*.pdf" \) --查找/opt下所有的.txt或者.pdf文件(-o 即or是或者,\( \) 改变括号作用)
[root@localhost /]# find /opt -name "*.txt" -o -name "*.pdf" --和上一个作用相同
[root@localhost /]# find /usr/ -path "*local*" --查找/usr/下路径包含local的文件
[root@localhost /]# find /opt -size +2k -type f --查找/opt下大于2k的普通文件
[root@localhost /]# find /opt -not -name "*.txt" --查找/opt下不是.txt的文件
[root@localhost /]# find /opt ! -name "*.txt" --查找/opt下不是.txt的文件(!和-not相同)