Linux find 强大的文件查找工具

天涯南飘絮

天涯南飘絮

2016-03-31 16:10

今天图老师小编要向大家分享个Linux find 强大的文件查找工具教程,过程简单易学,相信聪明的你一定能轻松get!

Linux find 强大的文件查找工具

linux的系统中的文件实在是太多了,怎么样才能快速而且精确的在linux系统找出你想要的文件呢?Linux 的find命令提供了很强大的功能,学好find命令的使用,可以给你节省大量花费在找文件的时间

 

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

find的基本语法格式:

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

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

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

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

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

  1)文件名

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

01.gif

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

02.gif

 

2)文件的属主、属组

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

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

     -uid         "UID"               :    根据UID查找

     -gid      "GID"                  :    根据GID查找

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

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

03.gif


 

复制代码代码如下:
[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   字符设备

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

           l    符合链接文件

           p  命令管道文件

           s  套接字文件

04.gif

4)文件的大小

           -size

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

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

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

05.gif

07.gif

5)文件修改时间

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

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

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

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

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

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

07.gif

08.gif

6)文件权限

          -perm  [+|-] MODE  

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

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

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

 

09.gif

10.gif

11.gif

12.gif

 

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 {}

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

展开更多 50%)
分享

猜你喜欢

Linux find 强大的文件查找工具

服务器
Linux find 强大的文件查找工具

Linux find命名快速查找中毒文件的方法

服务器
Linux find命名快速查找中毒文件的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux下使用find命令查找文件如何忽略某些目录

电脑入门
Linux下使用find命令查找文件如何忽略某些目录

Linux的查找文件命令是什么?

电脑入门
Linux的查找文件命令是什么?

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux系统命令行Find工具使用小技巧

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux系统命令行Find工具使用小技巧

使用 find 搜索文件

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
使用 find 搜索文件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VMware无法启动虚拟机的解决办法

VMware无法启动虚拟机的解决办法

iPhone按键音能修改吗

iPhone按键音能修改吗
下拉加载更多内容 ↓