Linux中find命令的用法

 
Windows 操作系统要查找一份文件是相当简单的事情,只要在桌面上点击“开始 搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在 INTERNET 上查找各种文件,文档。可是在 linux 中要查找某一个文件就是一件很麻烦的事情。毕竟在 linux 中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。 Linux 下的文件表达式非常复杂,对于 linux 新手来说, find 命令也是了解和学习 linux 文件特点的方法。下面就详细为大家介绍强大的 find 命令的全部使用方法和用途。
Find 命令用于进行文件查找,它有实施查找、精确、支持众多查找标准,但是它是遍历指定目录中的所有文件完成查找,所以速度非常慢。格式是: find 查找路径   查找到以后的处理运作。不写查找路径默认为当前目录,查找标准默认为指定路径下的所有文件,处理运作默认为显示下面说一下它的主要命令。
   匹配标准
        -name:'filename': 对文件名精确查找
        * :任意长度的任意字符
           [ ] :指定此范围    
        -iname: 文件匹配不区分大小写
        -regex PATTERN: 基于正则表达式进行文件名匹配
              -user USERNAME: 根据属主查找
              -group GROUPNAME: 根据属组查找
              -uid UID: 根据 UID 查找
              -gid GID: 根据 GID 查找
              - nouser : 查找没有属主的文件
        - nogroup : 查找没有属组的文件
             
           -type: 根据文件类型查找
                  f: 普通文件
                     d: 目录文件
                     c: 字符设备文件
                     b: 块设备文件
                     l: 符号链接文件
                     p: 命令管道文件
                     s: 套接字文件
              字符大小
              -size  [+( 内) |-( 在限定之外 ) 、什么都不加为精确到 ]
                  #k:
                     #M:
                     #G
   组合条件:
        -a
              -o 
              -not 
   时间(也可以使用 +- 与字符相同)
   -mtime:
   -ctime:
   -atime:
       -mmin:user
       -cmin:
       -amin:
   根据权限查找  
       perm MODE 精确匹配
           /MODE 任意一位匹配既满足条件
              -MODE 文件权限能完全包含此 MODE 时才能显示
      
动作:
    -print: 显示
    -ls: 类似 ls -l 的形式显示每一个文件的详细
    -ok COMMAND {}\; 每一部操作都需要用户确认
    -exec COMMAND{}\; 不需要确认
下面就几个例子来说明一下用法:
  1 、查找 /var 目录下属主为 root 并且属组为 mail 的所有文件;
  find /var -user root -group mail
    find 命令先找出 /var ,在查找属主为 root 且属组为 mail 的文件
  2 、查找 /usr 目录下不属于 root,bin, student 的文件;
  find /usr -not -user root -a -not -user bin -a -not -user student
  find /usr -not \( -user root -o -user bin -o -user student \)
  3 、查找 /etc 目录下最近一周内内容修改过且不属于 root student 用户的文件;
  find /etc -mtime -7 -not \ ( -user root -o -user student \)
  find /etc -mtime -7 -not -user root -a -not -user student
  首先,使用 find 命令查找 /etc ,然后是修改命令时间为 mtime ,最近一周,所以小于 7 天为“ -7 ”不属于 root           student 的用户的文件
  4 、查找当前系统上没有属主或属组且最近 1 天内曾被访问过的文件,并将其属主属组均修改为 root
  find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \; 
  没有属主或没有属组为 -nouser -o  -nogroup 并且最近一天曾被访问“ -a -atime -1 ” 
  修改属主属组为 root ,使用 chown 命令。 {} 表示由 find 找到的内容
  5 、查找 /etc 目录下大于 1M 的文件,并将其文件名写入 /tmp/etc.largefiles 文件中;
  find /etc -size + 1M >> /tmp/etc.largefiles
  6 、查找 /etc 目录下所有用户都没有写权限的文件,显示出其详细信息;
  find /etc -not -perm /222 �Cls
  用户没有写权限,使用
  -perm  MODE
     -mode :每一位权限必须精确匹配 . 文件权限完全包含 mode 才能显示
      /mode: 任意一位匹配即满足条件
  所以是“ -not -perm /222, ”并查看使用“ -ls ”命令

你可能感兴趣的:(linux,find命令,find命令用法)