2023年7月26日发(作者:)
linux-find【递归搜索⽂件名】1 命令格式:$ find <指定⽬录> <指定条件> <指定动作>最常见⽰例:查找⽂件名(忽略⼤⼩写)$find . -iname 1.1 <指定⽬录>: 所要搜索的⽬录及其所有⼦⽬录。默认为当前⽬录。find默认递归指定⽬录。⽬录可以有多个,⽬录之间要⽤空格分开。[admin@]$find /etc /tmp /root -name passwd1.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*' 系统查找到""⽂件后即时在屏幕上显⽰""⽂件信息。 $find . -name"" -ls搜索当前⽬录中,所有过去10分钟中更新过的普通⽂件。如果不加-type f参数,则搜索普通⽂件+特殊⽂件+⽬录。 $ find. -type f -mmin -10
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690362093a337925.html
评论列表(0条)