Linux系统中find命令的使用

find命令 (liunx中的内容一切皆文件)

特点: 查找速度慢,实时查找,精确查找

格式:find [OPTION]... [查找路径] [查找条件] [处理动作]

  • 查找路径:默认为当前目录
  • 查找条件:默认为查找所有文件

  • 处理动作:默认是输出到屏幕

查找条件:

  • 根据文件名字查找:

    • -name:后跟文件名称,根据文件名字查找。支持使用linux的通配符

    • -iname:同上,忽略大小写

    • 根据属主,属组查找:

      • -user:后跟用户名,根据用户名查找文件

      • -group:后跟组名,根据组名查找文件

      • -uid:根据uid查找

      • -gid:根据gid查找

      • -nouser:不跟参数,查找属主为空的

      • -nogroup:查找属组为空的

    • 根据文件类型查找:

      • -type 文件类型:根据文件类型查找

        • f:普通文件

        • d:目录文件

        • l:符号链接文件

        • s:套接字文件

        • b:块设备文件

        • c:字符设备文件

        • p :管道文件

    • 处理动作:

    • -print:默认的处理动作,输出到屏幕

    • -ls:查看文件权限详情,相当于对查询出的文件右执行了"ls -l"命令

    • -delete:删除查找到的文件

    • -fls:后跟路径,将查询到的长文件信息输出到文件。即执行了-ls之后又把输出流重定向到了文件

    •   -exec      对查找出来的内容进行相应处理

    • 组合查找:

      • -a:与

      • -o:或

      • -not或!:非

      • 例,find / −nouser−o−nogroup−nouser−o−nogroup -ls,查找属组为空或属主为空的文件

      • 根据文件大小查找:

        • 格式:-size [ + | - ] 大小

          • 大小=数字+单位

          • 单位有k,M,G

        • 数字+单位:查找的范围是:(数字-1,数字],find  /etc -size 3k,查找大于2k小于等于3k的文件

        • -:使用减号表示:[0,数字-1]。例,find  /etc -size -3k,查找所有小于等于2k的文件

        • +:加号表示(数字,oo)。例,find /etc -size -3k,查找所有大于3k的文件

    •  
    •  根据时间戳查找:

      • 以天为单位:a表示访问时间,m修改时间,c改变时间

        -atime、-mtime、-ctime:也能配置+,-号使用,使用方法与根据文件大小查找类似
        • 例,find /etc -mtime +3,查找修改时间大于4天的文件

        • 例,find /etc -mtime 3,查找修改时间大于3天小于4天的文件。

        • 例,find /etc -mtime -3,查找修改时间在3天以内的文件。

      • 以分钟为单位:

        • -amin、-mmin、-cmin:同上

    • 根据文件权限查找:

      • 格式:-perm [ / | - ] 权限,以例子说明,centos7中+彻底过时,被 / 取代。

      • find /etc -perm 111:精确查找,查找权限为600的文件

      • find /etc -perm /111:查找任何一组满足权限条件的文件,类似或的关系。010也满足条件。

      • find /etc -perm -111:必须三组同时满足条件,类似与的关系。113满足条件。

    • 小测试:

    • find   /etc   -name  passwd
      find   /etc   -maxdepth 1  -name   passwd
      find   /etc   -maxdepth 1  -name   passwd
      find   /etc   -maxdepth 2  -mindepth 2  -name        passwd  
      find   /mnt   -user     westos
      find   /mnt    -not    -user   westos
      find   /mnt   -user     westos   -o  -user   lee
      find     /mnt   -type  d
      find   /mnt   -perm  111         文件权限位111
      find   /mnt   -perm   -111     文件权限 u位有1 g位有1  o位有1
      find   /mnt   -perm   /111       文件权限u位或g位或o位 有1
      find   /mnt   -perm   /111  -type f  -exec chmod ugo-x  {} \;   其中{}  表示find命令查找结果  \ 为了转译

      (1)查找/etc目录中对其他人有写权限的文件,并把这些文件的other位写权限去掉

            find  /etc   -type f   -perm  -002    -exec chmod  o-w   {} \;

      (2)在系统中查找属于westos用户的文件,并吧这些文件打包成/root/westos.tar.gz的压缩包。

           find /  -user  westos   -exec  tar   zcvf    /root/westos.tar.gz {} \;

猜你喜欢

转载自blog.csdn.net/weixin_43215948/article/details/107665153