• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux find 强大的文件查找工具

     “一切皆文件”是 Linux的哲学思想之一, 这条命令可以统计当前linux系统中有多少文件ls -R / |wc -l  建议放在后台执行,因为你的系统文件很多则会消耗很多时间,你可以看见这个结果是庞大的,linux的系统中的文件实在是太多了,怎么样才能快速而且精确的在linux系统找出你想要的文件呢?Linux 的find命令提供了很强大的功能,学好find命令的使用,可以给你节省大量花费在找文件的时间。

    find的基本语法格式:

            find  [查找位置]  [查找标准]  [处理动作]

    查找位置:默认为当前目录,可以指定多个目录,多个之间用空格

    查找标准:默认为查找指定目录下的所有文件

    处理动作:显示到标准输出,默认为print

    剖析find的查找标准可分为哪些:

      1)文件名

     -name  "文件名称" : 根据文件名查找,支持glob

    -iname "文件名称",根据文件名查找,不区分大小写


    2)文件的属主、属组

         -user     "USERNAME"    :    根据属主查找

         -group    "GROUP"         :    根据属组查找

         -uid         "UID"               :    根据UID查找

         -gid      "GID"                  :    根据GID查找

         -nouser                           :    查找没有属主的文件

         -nogroup                         :   查找没有属组的文件




    复制代码
    代码如下:

    [root@Redhat6 /]# find / -nouser -nogroup #没有属主,也没有属组
    /tmp/user1dir
    [root@Redhat6 /]# ls -ld /tmp/user1dir/ #验证查找的文件是否符合要求,文件没有用户表示属主和属组,但会以ID号来表示
    drwxrwxr-x 2 500 500 4096 Jul 23 10:36 /tmp/user1dir/
    [root@Redhat6 /]# find / -user root -gid 500 #查找用户为root,gid为500
    /tmp/user1dir
    [root@Redhat6 /]# ls -ld /tmp/user1dir/
    drwxrwxr-x 2 root 500 4096 Jul 23 10:36 /tmp/user1dir/



    3)文件的类型

        -type

               f   文件

               d  目录

               b  块设备

               c   字符设备

               l    符合链接文件

               p  命令管道文件

               s  套接字文件

    4)文件的大小

               -size

    #[k|M|G]:#表示数字,匹配的时候为模糊匹配

                    +#[k|M|G]:+#表示大于,匹配的结果大于#

                    -#[k|M|G] :-#表示小于,匹配的结果是小于#


    5)文件修改时间

               -atime   [+|-]#   :访问时间,默认为天,#表示#天的这个时间点,+#表示至少有#天没访问 ,  -#表示#天之内没访问

               -mtime [+|-]#   :  修改时间,#表示#天的这个时间点没有被修改,+#表示至少有#天没有修改 ,  -#表示#天之内没有修改

               -ctime   [+|-]#   : 改变时间,#表示#天的这个时间点没有被改变,+#表示至少有#天没有被改变 ,  -#表示#天之内没有被改变

               -amin    [+|-]#    : 时间为分钟,#表示#分钟的这个时间点没有被访问,+#表示至少有#分钟没有被访问 ,  -#表示#分钟之内没访问

               -mmin  [+|-]#    :时间为分钟,#表示#分钟的这个时间点没有被修改,+#表示至少有#分钟没有被修改 ,  -#表示#分钟之内没有被修改

               -cmin    [+|-]#    :时间为分钟,#表示#分钟的这个时间点没有被改变,+#表示至少有#分钟没有被改变 ,  -#表示#分钟之内没有被改变

    6)文件权限

              -perm  [+|-] MODE  

                     不带[+|-]表示精确权限匹配,

                     +表示任何一类用户的任何一位权限匹配

                     - 表示每类用户的每位权限都匹配



    find在查找标准时支持组合查找条件,在使用组合查找条件时要考虑优先级,优先级为顺序为非→与→或,在组合参数是想改变优先级可以用()来提升优先级。

               -a    (and)   与默认是与

               -o    (or)      或

               -not,!           非

    find的处理动作可以是:

           -print   默认为输出

           -ls          显示查找到的文件的详细信息

    -ok   COMMAND \;   要确认

           -exec    COMMAND  \;     其中COMMAND中有对查找到的文件进行操作时,用{}来替代查找到的     文件,\;表示使用-exec的结束符,是固定格式; 使用-exec来出来查找的文件时,还可以通过管道送给xargs命令来解决,xargs在执行命令时,如果有对文件进行操作则用-i选项,{}也表示要操作的文件。


    复制代码
    代码如下:

    1、查找/var目录下属主为root并且属组为mail的所有文件;
    find /var -user root -group mail
    2、查找/usr目录下不属于root,bin,或student的文件;
    find /usr -not \( -user root -o -user bin -o -user student \)
    find /usr -not -user root -a -not -user bin -a -not -user student
    3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;
    find /etc -mtime -7 -a -not -user root -a -not -user student
    find /etc -mtime -7 -a -not \( -user root -o -user student \)
    4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;
    find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
    5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;
    find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;
    find /etc -size +1M >> /tmp/etc.largefiles
    6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;
    find /etc -not -perm +222
    7、删除类型不是目录,而且没有属主的文件;
    find / -not -type d -a -nouser -exec rm -f {} \;
    find / -not -type d -a -nouser | xargs -i rm -f {}

    本文出自 “技术之路---桀” 博客

    上一篇:轻松学会文本处理工具之二 linux sed命令
    下一篇:Linux系统下批量压缩图片尺寸大小的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux find 强大的文件查找工具 Linux,find,强,大的,文件,查找,