• linux-find【递归搜索文件名】


    1 命令格式:

    [plain] view plain copy
     
    1. $ find <指定目录> <指定条件> <指定动作>  

    最常见示例:查找文件名(忽略大小写)

    [java] view plain copy
     
    1. $find . -iname sqlquery.java  

    1.1 <指定目录>:

     所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。

    [plain] view plain copy
     
    1. [admin@r42h06016.xy2.xxx.com]$find /etc /tmp /root -name passwd  

    1.2 <指定条件>: 

    所要搜索的文件的特征。

    [1]根据文件名查找
    -name    按照文件名查找 
    -iname   根据文件名查找,但是不区分大小写
    -prune    不在当前指定的目录中查找 
    -depth    在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 
    [2]根据文件所属用户和组来查找文件
    -user     按照文件属主来查找文件 

    [plain] view plain copy
     
    1. $find / -user fred      //查找在系统中属于FRED这个用户的文件  

    -group   按照文件所属的组来查找文件  

    [plain] view plain copy
     
    1. $find / -group cat      //查找在系统中属于group组名cat的文件   

    [3]根据uid 和 gid来查找用户
    -uid

    [plain] view plain copy
     
    1. #find  /tmp -uid 500       //查找uid是500 的文件  

    -gid

    [plain] view plain copy
     
    1. #find  /tmp -gid 1000      // 查找gid是1000的文件  

    [4]-a,-o,-not的使用
    -a      连接两个不同的条件(两个条件必须同时满足)

    [plain] view plain copy
     
    1. #find /tmp -name "*.sh" -a -user root  

    -o     连接两个不同的条件(两个条件满足其一即可)

    [plain] view plain copy
     
    1. #find /tmp -name "*.sh" -o -user root  

    -not 对条件取反的

    [plain] view plain copy
     
    1. #find /tmp -not -user root  

    [5]根据文件时间戳的相关属性来查找文件
    -atime   最近一次访问时间      单位:天
    -mtime 最近一次内容修改时间  单位:天
    -ctime  最近一次属性修改时间  单位:天
    -amin   最近一次访问时间      单位:分钟
    -mmin  最近一次内容修改时间  单位:分钟
    -cmin   最近一次属性修改时间  单位:分钟
    -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件 

    [plain] view plain copy
     
    1. #find /tmp -atime +5  //表示查找在五天内没有访问过的文件  
    2. #find /tmp -atime -5   //表示查找在五天内访问过的文件  

    [6]根据文件类型来查找文件
    -type 查找某一类型的文件 
    文件类型: 
    f 普通文件 
    d 目录 
    l 符号链接文件 
    c 字符设备文件 
    p 管道文件 
    b 块设备文件
    s socket文件

    [plain] view plain copy
     
    1. #find /tmp -type s  

    [7]根据大小来查找文件
    -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 

    [plain] view plain copy
     
    1. #find /tmp -size  2M           //查找在/tmp 目录下等于2M的文件  
    2. #find /tmp -size +2M           //查找在/tmp 目录下大于2M的文件  
    3. #find /tmp -size -2M           //查找在/tmp 目录下小于2M的文件  
    [plain] view plain copy
     
    1. $find . -size +1000000c        //在当前目录下查找文件长度大于1 M字节的文件  
    [plain] view plain copy
     
    1. $find / -empty             //查找在系统中为空的文件或者文件夹   

    [8]根据文件权限查找文件

    -perm

    [plain] view plain copy
     
    1. #find /tmp -perm 755           //查找在/tmp目录下权限是755的文件  
    2. #find /tmp -perm +222          //表示只要有一类用户(属主,属组,其他)的匹配写权限就行  
    3. #find /tmp -perm -222          //表示必须所有类别用户都满足有写权限  

    [10]-nouser和-nogroup
    -nogroup 查找无有效所属组的文件,即该文件所属的组不存在 
    -nouser  查找无有效属主的文件 

    [plain] view plain copy
     
    1. #find / -nogroup -a -nouser    //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)  
    [plain] view plain copy
     
    1. $find / -nouser            //查找在系统中属于作废用户的文件   

    1.3 <指定动作>: 

    对搜索结果进行特定的处理。

    -print            //默认情况下的动作
    -ls               //查找到后用ls 显示出来
    -ok [commend]     //查找后执行命令的时候询问用户是否要执行
    -exec [commend]   //查找后执行命令的时候不询问用户,直接执行

    注意-ok和-exec命令将命令行上后续的参数作为他们参数的一部分,直到被;序列终止。魔术字符串{}是-ok和-exec命令的一个特殊类型的参数,它将被当前文件的完整路径取代。

    [plain] view plain copy
     
    1. #find /tmp -atime +30 –exec rm –rf {} ; //删除查找到的超过30天没有访问过文件  

    这里要注意{ }的使用:替代查找到的文件

    [plain] view plain copy
     
    1. #find /tmp -name "*.old" | xargs chmod 700  

    2 命令举例

    搜索/etc目录下的文件名包含del的文件。

    [plain] view plain copy
     
    1. $find /etc -name '*del*'  

    系统查找到"config.py"文件后即时在屏幕上显示"config.py"文件信息。 

    [plain] view plain copy
     
    1. $find . -name "config.py" -ls  

    搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

    [plain] view plain copy
     
      1. $ find . -type f -mmin -10  
  • 相关阅读:
    2020系统综合实践 第1次实践作业
    软工实践个人总结
    2019 SDN大作业
    HDU 4965 Fast Matrix Calculation (矩阵快速幂取模----矩阵相乘满足结合律)
    HDU 1565 (最大流+黑白染色化二分图求最小割)
    HDU 4289 Control (最大流+拆点)
    HDU 3605 Escape(最大流+缩点转换)
    HDOJ4886(hash+枚举)
    POJ 2446 Chessboard (二分匹配)
    POJ 1469 COURSES (二分匹配,邻接表)
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/8005353.html
Copyright © 2020-2023  润新知