linux-find【递归搜索⽂件名】
1 命令格式:
$ find <;指定⽬录> <;指定条件> <;指定动作>
最常见⽰例:查⽂件名(忽略⼤⼩写)
find查命令的使用$find . -iname sqlquery.java
1.1 <;指定⽬录>:
所要搜索的⽬录及其所有⼦⽬录。默认为当前⽬录。find默认递归指定⽬录。⽬录可以有多个,⽬录之间要⽤空格分开。
[2.xxx]$find /etc /tmp /root -name passwd
1.2 <;指定条件>:
所要搜索的⽂件的特征。
[1]根据⽂件名查 -name    按照⽂件名查  -iname  根据⽂件名查,但是不区分⼤⼩写 -prune    不在当前指定的⽬录中查  -depth    在查⽂件时,⾸先查当前⽬录中的⽂件,然后再在其⼦⽬录中查  [2]根据⽂件所属⽤户和组来查⽂件 -user    按照⽂件属主来查⽂件
$find / -user fred  //查在系统中属于FRED这个⽤户的⽂件
-group    按照⽂件所属的组来查⽂件
$find / -group cat  //查在系统中属于group组名cat的⽂件
[3]根据uid 和 gid来查⽤户 -uid #find /tmp -uid 500 //查uid是500 的⽂件 -gid #find /tmp -gid 1000 // 查gid是1000的⽂件 [4]-a,-o,-not的使⽤ -a      连接两个不同的条件(两个条件必须同时满⾜) #find /tmp -name "*.sh" -a -user root -o      连接两个不同的条件(两个条件满⾜其⼀即可) #find /tmp -name "*.sh" -o -user root -not 对条件取反的 #find /tmp -not -user root [5]根据⽂件时间戳的相关属性来查⽂件 -atime    最近⼀次访问时间      单位:天 -mtime 最近⼀次内容修改时间  单位:天 -ctime  最近⼀次属性修改时间  单位:天 -amin  最近⼀次访问时间      单位:分钟 -mmin  最近⼀次内容修改时间  单位:分钟 -cmin  最近⼀次属性修改时间  单位:分钟 -newer file1 ! file2 查更改时间⽐⽂件file1新但⽐⽂件file2旧的⽂件  #find /tmp -atime +5 //表⽰查在五天内没有访问过的⽂件 #find /tmp -atime -5 //表⽰查在五天内访问过的⽂件 [6]根据⽂件类型来查⽂件 -type 查某⼀类型的⽂件  ⽂
件类型:  f 普通⽂件  d ⽬录  l 符号链接⽂件  c 字符设备⽂件  p 管道⽂件  b 块设备⽂件 s socket⽂件 #find /tmp -type s [7]根据⼤⼩来查⽂件 -size n[c] 查⽂件长度为n块的⽂件,带有c时表⽰⽂件长度以字节计  #find /tmp -size 2M //查在/tmp ⽬录下等于2M的⽂件 #find /tmp -size +2M //查在/tmp ⽬录下⼤于2M的⽂件 #find /tmp -size -2M //查在/tmp ⽬录下⼩于2M的⽂件 $find . -size +1000000c //在当前⽬录下查⽂件长度⼤于1 M字节的⽂件 $find / -empty //查在系统中为空的⽂件或者⽂件夹 [8]根据⽂件权限查⽂件 -perm #find /tmp -perm 755 //查在/tmp⽬录下权限是755的⽂件 #find /tmp -perm +222 //表⽰只要有⼀类⽤户(属主,属组,其他)的匹配写权限就⾏ #find /tmp -perm -222 //表⽰必须所有类别⽤户都满⾜有写权限 [10]-nouser和-nogroup -nogroup 查⽆有效所属组的⽂件,即该⽂件所属的组不存在  -nouser  查⽆有效属主的⽂件  #find / -nogroup -a -nouser //在整个系统中查既没有属主⼜没有属组的⽂件(这样的⽂件通常是很危险的,作为系统⼯程师的我们应该及时清除掉) $find / -nouser //查在系统中属于作废⽤户的⽂件 1.3 <;指定动作>:  对搜索结果进⾏特定的处理。 -print            //默认情况下的动作 -ls              //查到后⽤ls 显⽰出来 -ok [commend]    //查后执⾏命令的时候询问⽤户是否要执⾏ -exec [commend]  //查后执⾏命令的时候不询问⽤户,直接执⾏ 注意-ok和-exec命令将命令⾏上后续的参数作为他们参数的⼀部分,直到被\;序列终⽌。魔术字符串{}是-ok和-exec命令的⼀个特殊类型的参数,它将被当前⽂件的完整路径取代。 #find /tmp -atime +30 –exec rm –rf {} \; //删除查到的超过30天没有访问过⽂件这⾥要注意{ }的使⽤:替代查到的⽂件 #find /tmp -name "*.old" | xargs chmod 700 2 命令举例 搜索/etc⽬录下的⽂件名包含del的⽂
件。 $find /etc -name '*del*' 系统查到"config.py"⽂件后即时在屏幕上显⽰"config.py"⽂件信息。  $find . -name "config.py" -ls搜索当前⽬录中,所有过去10分钟中更新过的普通⽂件。如果不加-type f参数,则搜索普通⽂件+特殊⽂件+⽬录。 $ find . -type f -mmin -10

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。