find文件查找

来源:互联网 发布:狼人杀 官方唯一 知乎 编辑:程序博客网 时间:2024/06/03 19:42
* 语法格式:    find [-H][-L][-P][-D debugopts][-Olevel][starting-point...][expression]* 语义:    从[starting-point...]中找出[expression]为true的文件

1. 常用命令速查

  1. 找出所有设置uid的程序:
    find / -perm -u+x -print
  2. 找到5个最大的文件:
    find . -type f -exec ls -s {} \; | sort -n -r | head -5
  3. 找到5个最小的文件:
    find . -not -empty -type f -exec ls -s {} \; | sort -n | head -5
  4. 不在指定的目录中查找:
    find . -path ./directory-to-exclude -prune -o -name '*.txt' -print
  5. 查找宏所在的头文件:
    find /usr/include/ -name *.h | xargs grep 'ORIG_EAX'
  6. 把所有文件权限设置成640:
    chmod 640 find ./ -type f -print
  7. 把所有目录权限设置为751:
    chmod 751 find ./ -type d -print

2. 参数部分释义

  1. [-H][-L][-P] 表示如何处理符号链接
    • [-H] 不解析符号链接,使用符号本身的信息[default]
    • [-L] 解析符号链接,使用符号指向的文件的信息
    • [-P] 使用符号本身信息,但是如果在命令行上给出有效的符号链接,则使用符号链接指向的文件的信息
  2. 「-D debugopts」
    • find -D help查看更多相关信息,一般不会使用到
  3. 「-Olevel」
    • 优化条件的比较顺序,尽量不去使用inode信息
  4. 「starting-point …」
    • 查找起始目录或文件
  5. expression」(重要)
    主要组成部分是文件匹配条件和对匹配文件的处理动作,包含:
    • 「global opts」影响所有的tests和actions,建议放到expression的最前面
      -d,-depth :深度优先搜索(-delete默认使用的准则)
      -mindepth,-maxdepth:最多查询几级目录,当前级别为0
      -mount,-xdev :搜索不跨越文件系统
    • 「positional opts」只影响它后面的tests和actions
      -daystart
      -regextype
      -warn
    • 「tests」建立在文件属性之上的一些断言
      -n,+n,n:文件大小相关的断言
      -amin,-anew,-atime:access time相关的断言
      -cmin,-cnew,-ctime:change time相关的断言
      -mmin,-mnew,-mtime:modify time相关的断言
      -empty:当前文件为空的断言
      -inum n: inode number的断言
      -name pattern:通配符匹配base file name
      -iname,同name,忽略大小写(ignore case)
      -path pattern:通配符匹配whole file name
      -perm mode:精准匹配mode
      -regex pattern:注意匹配路径部分
      -type b(lock)/c(hracter)/d(irectory)/s(ocket)/p(ipe)/f(ile):文件类型的断言
    • 「actions」返回值根据动作的执行结果而定
      -delete
      -ok
      -exec等
    • 「operators」-a逻辑与和-o逻辑或,默认为-a; 主要用于连接以上四种成份
0 0
原创粉丝点击