zoukankan      html  css  js  c++  java
  • 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”目录应该被排除掉

  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9311620.html
Copyright © 2011-2022 走看看