find [搜索范围][搜索条件]
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
搜索范围需要注意:避免大范围搜索,比如在根目录下面搜索,这样很浪费系统资源
搜索条件:
-name 按照名称查找(区分文件名称的大小写) 注意:find /tmp -name abc
find /tmp -name "ab[cd]"
find /tmp -name "ab*"
find /tmp -name "ab?"的区别
即文件部分名称加上通配符后的区别(后面会讲到通配符)
-iname 按照名称查找(不区分大小写)
-user 按照所有者搜索
-nouser 查找没有所有者的文件 (一般用这个可以扫描到垃圾文件)
-mtime 按照修改文件内容的时间搜索 比如
find /var/log/ -mtime +10 即查找10天前修改的文件
-atime
按照文件访问的时间搜索
-ctime 按照改变文件属性的时间搜索
-size 按照文件大小搜索 比如
find /tmp -size +25k 查找根目录下tmp中文件大小大于25k的文件
find /tmp -size 25k 查找根目录下tmp中文件大小是25k的文件
find /tmp -size -25k 查找根目录下tmp中文件大小小于25k的文件
注意:当以k字节大小查找时,k应该小写
当以M, G,T查找时,M,G,T应该大写
-inum 按照文件的节点数搜索 比如find . -inum 262422 即查找当前目录下的节点数为262422的文件
(当搜索范围为“.”时,即为当前目录下搜索)
通配符:* 匹配任意内容 ,例如
find /tmp "ab*" 意思为找到/tmp下名字是ab开头的文件
?匹配任意一个字符 例如
find /tmp "ab?" 意为找到/tmp下 以ab开头,以某一个字符结尾的文件
[]匹配任意一个中括号内的字符 例如
find /tmp "ab[cd]" 意为
找到/tmp下,以ab开头,以c或者d结尾的文件。
逻辑符以及-exec {} \;的使用
逻辑符:-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
例 find /etc -size +20k -a -size -50k
#查找/etc目录下 文件大小大于20k小于50k的文件
-exec {} \;的使用:
例
find /etc -size +20k -a -size -50k -exec ls -lh {}\;(红色部分可以任意变 即确定拿到文件后怎么执行)
#查找/etc目录下,文件大小大于20k小于50k的文件,并显示其详细信息;