萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux find 強大的文件查找工具

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   字符設備

           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  

                 不帶[+|-]表示精確權限匹配,

                 +表示任何一類用戶的任何一位權限匹配

                 - 表示每類用戶的每位權限都匹配

 

09.gif

10.gif

11.gif

12.gif

 

find在查找標准時支持組合查找條件,在使用組合查找條件時要考慮優先級,優先級為順序為非→與→或,在組合參數是想改變優先級可以用()來提升優先級。

           -a    (and)   與默認是與

           -o    (or)      或

           -not,!           非

find的處理動作可以是:

       -print   默認為輸出

       -ls          顯示查找到的文件的詳細信息

-ok   COMMAND ;   要確認

      &

copyright © 萬盛學電腦網 all rights reserved