• find指令


    我们知道,linux下面一切皆文件,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。

    1、命令格式
    find [查找目录] [查找规则] [查找完后的操作]
    即:find pathname -option [-print -exec -ok …]

    2、命令功能
    用于在文件树中查找文件,并做相应的处理,(有可能访问磁盘)。

    3、命令参数
    pathname:表示所要查找的目录路径,例如”.”表示当前目录,”/”表示根目录。
    -print:将find找到的文件输出到标准输出。
    -exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} ; 将查到的文件进行command操作,”{}”就代替查到的文件,注意”{}”和””之间有一个空格。
    -ok:和-exec的作用相同,只不过-ok更加安全一点,在执行每一个命令之前,大偶会让用户确定是否执行。

    查找规则:
    1、根据文件名查找
    1.1、-name //根据文件名进行查找,区分大小写精确查找
    这里写图片描述

    1.2、-iname //根据文件名查找,不区分大小写
    这里写图片描述

    1.3、文件名通配符:
    “*”表示通配任意的字符,可以是任何东西
    这里写图片描述

    1.4、”?”表示通配任意单个字符
    这里写图片描述

    1.5、”[]”表示通配括号里面的任意一个字符,注意[]里面的内容会被解析成单个字符
    这里写图片描述

    2、根据文件的时间戳信息查找文件
    在根据时间戳信息查找的时候,所有的time都是以天为单位,min都是以分钟为单位。+n表示n以前,-n表示n以内。
    2.1、以最近一次存取的时间为参数
    -atime:
    find pathname -atime +n //表示n天前存取过的文件
    find pathname -atime -n //表示以当前时间为起点前n天内存取过的文件
    -amin :
    find pathname -amin +n //表示n分钟前存取过的文件
    find pathname -amin -n //表示以当前时间为起点前n分钟内存取过的文件
    这里写图片描述

    2.2、以最近一次修改的时间为参数
    -mtime:
    find pathname -mtime +n //表示n天前修改过的文件
    find pathname -mtime -n //表示以当前时间为起点前n天内修改 过的文件
    -mmin:
    find pathname -mmin +n //表示n分钟前存取过的文件
    find pathname -mmin -n //表示以当前时间为起点前n修改 内存取过的文件

    2.3、以最近一次更改的时间为参数
    -ctime:
    find pathname -ctime +n //表示n天前更改 过的文件
    find pathname -ctime -n //表示以当前时间为起点前n天内更改 过的文件
    -cmin:
    find pathname -cmin +n //表示n分钟前更改过的文件
    find pathname -cmin -n //表示以当前时间为起点前n分钟内更改 过的文件

    3、根据文件所属用户和所属组来查找文件
    3.1、-user //根据文件所有者查找文件
    这里写图片描述

    3.2、 -group //根据所有者所在的组查找
    这里写图片描述

    4、根据nouser或nogroup查找
    4.1、-nouser //查找无有效属主的文件
    find pathname -nouser
    4.2、-nogroup //查找无有效属组的文件
    find pathname -nogroup

    5、-perm :根据权限来查找文件
    这里写图片描述

    6、根据uid和gid查找文件
    6.1、 -uid //根据文件的uid查找
    这里写图片描述

    6.2、 -gid //根据文件所在组的gid查找

    7、-type:根据文件类型查找文件
    7.1、 f //表示普通文件
    find pathname -type f:
    这里写图片描述

    7.2、 d //表示目录文件
    find pathname -type d:
    这里写图片描述

    7.3、 l //表示链接文件
    find pathname -type l:
    这里写图片描述

    7.4、 b //表示块设备文件
    find pathname -type b
    7.5、 c //表示字符设备文件
    find pathname -type c
    7.6、 p //表示管道设备文件
    find pathname -type p
    7.7、 s //表示套接字文件
    find pathname -type s

    8、-size :根据文件大小查找文件
    8.1、 find pathname -size +n //表示大于n字节的文件
    这里写图片描述

    8.2、 find pathname -size -n //表示小于n字节的文件
    这里写图片描述

    8.3、 find pathname -size n //表示等于n字节的文件
    这里写图片描述

    9、按照参考文件的更改时间查找
    -newer :file1//查找更改时间比file1的更改时间距离当前时间近的文件
    这里写图片描述

    10、maxdepth和mindepth
    10.1、 -maxdepth
    -maxdepth n : 搜索深度距离当前目录最多n个子目录深度
    这里写图片描述

    10.2、 -mindepth
    -mindepth n :搜索深度距离当前目录至少n个子目录深度
    这里写图片描述

    11、-empty:查找路径下为空的文件或文件夹
    这里写图片描述

    12、按照硬连接的数目进行查找
    12.1、-link n :硬连接连接数等于n的文件或目录
    这里写图片描述

    12.2、-link +n :硬连接连接数大于n的文件或目录
    这里写图片描述

    12.3、-link -n :硬连接连接数小于n的文件或目录

    13、-a、-o,-not(也就是与、或、非)
    13.1、 -a:连接两个不同的条件(两个条件必须同时为真)
    这里写图片描述

    13.2、 -o:连接两个不同的条件(两个条件只要满足一个即可)
    这里写图片描述

    13.3、 -not:对条件进行取反
    这里写图片描述

    14、查找完成之后的操作
    14.1、 -exec command {} ;: 其中,”{}”就代表查找之后返回的文件。
    这里写图片描述

    14.2、-ok command {} ;-ok相对于-exec而言更安全一点,会让用户确定所要执行的操作。
    这里写图片描述

  • 相关阅读:
    C#使用进度条,并用线程模拟真实数据 ProgressBar用法(转)
    装饰者模式(Decorator Pattern)C#版本的
    C# Stream篇(七) -- NetworkStream
    C# Stream篇(六) -- BufferedStream
    C# Stream篇(五) -- MemoryStream
    C# Stream篇(四) -- FileStream
    C# Stream篇(三) -- TextWriter 和 StreamWriter
    C# Stream篇(二) -- TextReader 和StreamReader
    C# Stream篇(—) -- Stream基类
    代理模式(Proxy Pattern)C#版本的
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/6225998.html
Copyright © 2020-2023  润新知