Find命令的用法

文件名查找命令:find,可以精确的查找,可以指定查找路径,为实时查找
在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。 
  格式为: find [查找路径]  [查找条件] [查找动作]  
  说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作

Ⅰ查找条件: 
        -name “FILENAME”   以文件名称查找  如: #find /etc -name 'passwd' 
        -iname “FILENAME”  不区分大小写进行文件名查找   
        -user 用户名    根据用户名查找   如: #find /var -user root 
        -group 组名     根据属组来查找
        -gid GID   根据GID号来查找
        -uid UID   根据UID号来查找
        -nouser    查找没有属主的文件
        -nogroup   查找没有属组的文件
        -regex " "  支持正则表达式 如:#find /etc -regex "pas.*" 
        -iregex " "   不区分大小写

 ㈠多条件查找,就要使用到逻辑关系
             -a  表示并关系,相当于and,逻辑与  
      如:#find /tmp -user root -a -group root ---> 查找tmp目录下属主属组都是root的文件 
             -o  表示或关系,相当于or,逻辑或 
               表示非关系,相当于not 
    说明:当使用很多的逻辑选项时,可以用括号把这些选项括起来
       例子:1、查找/usr目录下不属于root,bin,或student的文件;
                        #find /usr -not \( -user root -a -user bin -user student \)
                  2、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件
                      #find /etc -mtime -7 -not \( -user root -a -user student \)
                  3、查找当前系统上没有属主或者属组且最近1天内曾经被访问过的文件,并将其属组均修改为root;
                      #find / \( -nouser -o -nogroup \) -a -atime -1
                 4、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;
                     #find /etc \( -size +1 -a \) > /tmp/etc.largefiles 
          
 ㈡ 根据文件类型查找
             -type b    查找类型为块设备的文件
                      c   字符设备文件
                     d   目录文件
                     p   管道
                     f   普通文件
                     l   连接文件
     如:#find /var -type d  ---> 查找var目录下所有的目录文件

㈢根据文件大小查找: -size后面接文件的大小,默认为字节,单位有K,M,G
        -size 大小  
           如:#find /etc -size 1K   查找文件在0k--1k之间的    
                   #find /etc -size +2K   查找文件大于2K的文件
                  #find /etc -size -2K   查找文件小于2K的文件 

㈣根据时间来查找
       按天查找:-mtime  修改时间 -atime 访问时间 -ctime  改变时间
       如果时间前有+号,则3天之前,-3为3天之内   如:#find /etc -atime 3
       按分钟查找: -amin  -mmin   -cmin
       根据权限查找: -perm ,如果后面直接跟权限大小,为精确匹配
                                 /     表示任何一位匹配都行
                                -     所有的都得匹配  
  如:查找/etc目录下所有都木有写权限的文件;
            #find /etc -not -perm /222

Ⅱ处理动作
       -print   默认的动作,表示显示
        -ls      详细显示找到的结果 如:#find /etc -not -perm /222 -ls
        -ok  命令名 {} \;    执行命令并且提示 如:#find /etc -not -perm /222 -ls -lh {} \;
        -exec 命令名 {} \;     执行命令并且不予提示 
              如: #find / -nouser -a -nogroup -exec chown root:root {} \;


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