• find指令使用手册


    find 目录 条件 选项

    find . –print

    find . –print0

    .指明在当前目录中查找

    -print 打印匹配文件的文件名,使用‘ ’作为分隔文件的定位符

    -print0 打印匹配文件的文件名,使用null即’’作为分隔文件的定位符

    1. 根据文件名或整个表达式匹配搜索

    find  /home/slynux  -name  “*.txt”  –print

    find  /home/slynux  -iname  “*.txt”  –print

    -name选项后接文件名,可使用通配符

    -iname选项后接文件名,可使用通配符,并忽略大小写

    如果相匹配多个条件中的一个,可采用or 条件操作:

    find  .  (  -name  “*.txt”  -o  -name  “*.pdf”  )  -print

    注意:内容  )  内容与括号之间必须有空格,否则会提示有错误

    选项-path可使用通配符匹配文件的路径或文件名,-name总是匹配文件名,而-path则将文件路径(包括文件名)作为一个整体进行匹配

    find  /home/users  -path  “*slynux*”  -print

    输出结果:

    /home/users/list/slynux.txt

    /home/users/slynux/eg.css

    -regex选项,类似于-path选项,基于正则表达式匹配文件路径

    -iregex选项,忽略正则表达式的大小写

    正则表达式是通配符的高级形式,可以指定文本模式。

    2. find可使用!否定参数,进行反向匹配

    find  .  ! -name  “*.txt”  -print

    注意:感叹号!和选项-name之间必须保留一个空格

    3.基于目录深度进行搜索

    -maxdepth 告诉find最大向下查找几级

    -mindepth 告诉find应该从此处开始先下查找

    打印距离当前目录至少两个子目录的所有文件

    find  .  –mindepth  2  -type  f  -print

    注意:-maxdepth和-mindepth应作为find的第三个参数(作为第一个查找条件),以提高效率

    4. 根据文件类型搜索

    find  .  –type  d  -print

    5. 根据文件时间进行搜索

    -atime(访问时间)、-mtime(修改<内容>时间)、-ctime(改变<权限>时间),以天作为计量

    配合: -7或7或+7

     

    类似选项-amin、-mmin、-cmin以分钟作为计量

    6.基于文件大小进行查找

    find  .  –type  f  -size  +2k      #查找大于2k的文件

    find  .  –type  f  -size  -2k      #查找小于2k的文件

    find  .  –type  f  -size   2k      #查找等于2k的文件

     

    7. 删除匹配的文件(会实际从硬盘上将文件删除)

    -delete 可用来删除find找到的匹配文件

    find  .  –type  f  -name  “*.swap”  -delete

    8. 基于文件的权限匹配

    find  .  -type  f  -perm 644  -print  文件的权限大于或等于644都能匹配

    find  .  -type  f  /perm 644  -print  文件的权限小于或等于644都等匹配

    find  .  -type  f   perm 644  -print  文件的权限必须等于644才能匹配

    9. 基于文件的硬链接数查找 –links

    find  .  –links  N                           当前目录中查找硬链接数为N的文件

    find  .  –links  +N                         当前目录中查找硬链接数大于N的文件

    find  .  –links  -N                         当前目录中查找硬链接数小于N的文件

    10. 根据用户或群组进行匹配

    find  .  –user  username  -print

    find  .  –group  groupname  -print

    find  .  –uid uid  -print

    find  .  –gid gid  -print

    find  .  –nouser  -print

    11. find 结合其它命令执行

    find  -type  f  -user  root  -exec  chown slynux  {} ;

    红色部分是要执行的命令,{}代表find匹配的每个文件

    {}和之间必须有一个空格

    最后必须以分号;作为结束符

    另外最好使用单引号将花括号引起来,这样可以防止因文件名中含有空格,而导致执行过程出现错误

    find  .  –type f  -name “*.c”  -exec cat  {} ;>output.txt

    -exec结合多个命令

    无法在-exec参数后直接使用多个命令,他只能接受单个指令,不过我们可以将多个命令写到shell脚本中,让手在-exec中使用这个脚本。

    -exec  ./commands.sh  {} ;

    红色部分是脚本的路径

    12. 修剪——将某些文件或目录从搜索过程中排出的技术

    find  devel/source_path  ( -name  “.git”  -prune )  -o  ( -type  f  -print )

    ( -name  “.git”  -prune )的作用是用于排除,指明了“.git”目录应该被排除掉

  • 相关阅读:
    ftp的虚拟用户的使用
    系统进程与线程
    mysql 100%占用的解决
    两张神图介绍python3和 2.x与 3.x 的区别
    python3中__get__,__getattr__,__getattribute__的区别
    Python 数据图表工具的比较
    Spark入门(Python)
    别学框架,学架构
    Python垃圾回收机制
    pyextend库-accepts函数参数检查
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9311620.html
Copyright © 2020-2023  润新知