【精选】linux find 递归搜索文件名 |
您所在的位置:网站首页 › 集团全国排名前十 › 【精选】linux find 递归搜索文件名 |
1 命令格式:
$ find 最常见示例:查找文件名(忽略大小写),默认在当前目录下查找 $find . -iname sqlquery.java 1.1 :
所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。 [[email protected]]$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的文件
[plain] view plain copy $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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |