美文网首页
find命令

find命令

作者: 利欧leo丶 | 来源:发表于2020-04-05 22:05 被阅读0次

    在指定目录下查找文件;
    基本结构:find [paths] [expressions] [actions]
    paths: 接受一个或多个路径作为搜索范围,并在该路径下递归搜索;
    expression: 搜索条件,主要有以下几种条件:

    1. 按文件名搜索:
      • -name:区分大小写,-iname:不区分大小写;
      • ?:表示任何一个单一的符号;
      • *: 表示任意数量(包括0)的位置符号;
      • find /usr -name '*.txt': 查找/usr目录下所有文件名以.txt结尾的文件;
      • find /usr -name '????': 查找/usr目录下所有文件名刚好为4个字符的文件;
      • 有时候需要匹配完整的路径,可以使用-path-ipath选项;
      • find /usr -path '*/src/*.txt'查找/usr下所有文件名以.txt结尾的文件或目录,且该文件的父目录必须是src
    2. 根据文件类型:
      • 如果只想搜索得到文件或目录,即不想它们同时出现在结果中,可以使用-type选项指定文件类型。
      • -type选项最常用的参数如下:
        • f: 文件
        • d: 目录
        • l: 符号链接
      • find /usr -type d -name 'python*' 检索/usr下所有文件名以python开头的目录;
    3. 检索空文件:
      • find 命令支持 -empty 选项用来检索为空的文件或目录。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录。
      • find ~ -type d -empty 检索用户主目录下所有的空目录
    4. 反义匹配:
      • 检索 /usr 下所有文件名.txt 为后缀的文件:find /usr -type f ! -name '*.txt'
      • 检索 /usr 下所有内容不为空的文件: find /usr -type f ! -empty
    5. 根据文件的所属权检索:
      • 为了检索归属于特定用户的文件或目录,可以使用 -user 选项。-group 选项则可以根据文件或目录的属组进行检索。
      • find / -type f -user starky 检索根目录下所有属主为 starky 的文件。
    6. 根据时间日期进行检索:
      • 有时候,需要根据文件创建或修改的时间进行检索。
      • Linux 系统中,与文件相关联的时间参数有以下三种:
        • 修改时间(Modification time):最后一次文件内容有过更改的时间点;
        • 访问时间(Access time):最后一次文件有被读取过的时间点;
        • 变更时间(Change time):最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改);
      • 与此对应的是 find 命令中的 -mtime-atime-ctime 三个选项。这三个选项的使用规则:
        • -mtime 2:该文件 2 天前被修改过;
        • -mtime -2:该文件 2 天以内被修改过;
        • -mtime +2:该文件距离上次修改已经超过 2 天时间;
      • find /usr -type f -mtime 2 检索 /usr 下两天前被修改过的文件。
      • 如果觉得 -mtime 等选项以为单位时间有点长,还可以使用 -mmin-amin-cmin
      • find /usr -type f -mtime +50 -mtime -100 检索 /usr 下 50 到 100 天之前修改过的文件。
      • find /usr -type f -mtime 2 -amin 5 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件。
    7. 根据文件大小检索:
      • -size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小)
      • 表示文件大小的单位由以下字符组成:
        • c:字节
        • k:Kb
        • M:Mb
        • G:Gb
      • 另外,还可以使用 +- 符号表示大于小于当前条件。
      • find / -size +1G 检索文件大小高于 1 GB 的文件。
    8. 根据文件权限检索:
      • find 命令可以使用 -perm 选项以文件权限为依据进行搜索。
    9. 对搜索结果执行命令:
      • -delete 选项可以用来删除搜索到的文件和目录
      • 如删除 home 目录下所有的空目录:find ~ -type d -empty -delete

    相关文章

      网友评论

          本文标题:find命令

          本文链接:https://www.haomeiwen.com/subject/qznpphtx.html