Linux命令之find的用法

find顧名思義就是查找,Linux下find命令提供至關多的查找條件,所以功能比較強大,能夠在衆多文件或目錄下查找你想要的任何文件或目錄。shell

find 命令格式:find pathname -options [-print -exec -ok...]安全

pathname表示find命令所查找的文件或目錄的路徑。例如:/home/tools/tongyanide

-print: find命令將匹配的文件輸出到標準輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的做用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行。3d

find經常使用命令格式:blog

-name   filename             #查找名爲filename的文件
-perm                             #按執行權限來查找
-user    username            #按文件屬主來查找
-group groupname           #按組來查找
-mtime   -n +n                #按文件更改時間來查找文件,-n指n天之內,+n指n天之前
-atime    -n +n                #按文件訪問時間來查GIN: 0px">it

-ctime    -n +n                #按文件建立時間來查找文件,-n指n天之內,+n指n天之前io

-nogroup                        #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser                          #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer   f1 !f2                # 找文件,-n指n天之內,+n指n天之前 
-ctime    -n +n               #按文件建立時間來查找文件,-n指n天之內,+n指n天之前 
-nogroup                       #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser                         #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer   f1 !f2               #查更改時間比f1新但比f2舊的文件
-type    b/d/c/p/l/f         #查是塊設備、目錄、字符設備、管道、符號連接、普通文件
-size      n[c]                 #查長度爲n塊[或n字節]的文件
-depth                          #使查找在進入子目錄前先行查找完本目錄
-fstype                         #查更改時間比f1新但比f2舊的文件
-type    b/d/c/p/l/f        #查是塊設備、目錄、字符設備、管道、符號連接、普通文件
-size      n[c]                #查長度爲n塊[或n字節]的文件
-depth                         #使查找在進入子目錄前先行查找完本目錄
-fstype                        #查位於某一類型文件系統中的文件,這些文件系統類型一般可 在/etc/fstab中找到
-mount                       #查文件時不跨越文件系統mount點
-follow                        #若是遇到符號連接文件,就跟蹤連接所指的文件
-cpio                          #查位於某一類型文件系統中的文件,這些文件系統類型一般可 在/etc/fstab中找到
-mount                       #查文件時不跨越文件系統mount點
-follow                        #若是遇到符號連接文件,就跟蹤連接所指的文件
-cpio                          #對匹配的文件使用cpio命令,將他們備份到磁帶設備中
-prune                       #忽略某個目錄class

 

下面具體說明test

查找方式有不少種,好比按文件類型(-type),文件名(-name),文件屬主(-user),文件所屬組)(-group),文件權限(-perm),文件長度(-size),文件修改時間(-mtime)等查找。file

文件類型包括:d  目錄文件。

                    l  符號連接(指向另外一個文件,相似於瘟下的快捷方式) 。
                    s  套接字文件。
                    b  塊設備文件,二進制文件。
                    c  字符設備文件。
                    p  命名管道文件。
                    -  普通文件,或更準確地說,不屬於以上幾種類型的文件。

文件權限包括:r    讀文件

                    w   寫文件

                    x    執行文件操做

(1)按文件類型查找

      find test1 -type d

(2)按文件名查找

   find test1 -name test2

(3)按文件屬主

  find test1 -user wangmengting

(4)按文件所屬組

find test1 -group wangmengting

(5)按文件修改時間

find test1 -mtime -1

其餘的就不一一演示了。

注意:那若是查找出來的文件太多,可用如下方式進行顯示。例如:

  -print :將查找到的匹配的文件輸出到標準輸出

    find /home -type f -print

         此外,還能夠對文件進行額外的操做。例如:

  -exec :將查找到的文件進行額外的動做

    find /test1 -name 「test2.txt」 -exec rm {} \;      

    {}:指的是find找到的內容,即找到的結果會被放到{}的位置中;

   -exec 到 \; :是關鍵字表明find額外動做的開始(-exec)到(\;)結束,這中間的就是find指令內的額外動做,在上面例子中就是【 rm {} 】;

   \ :爲轉義字符。

find -mtime這個參數的使用

#mtime參數的理解應該以下:-mtime n 按照文件的更改時間來找文件,n爲整數。n表示文件更改時間距離爲n天, -n表示文件更改時間距離在n天之內,+n表示文件更改時間距離在n天之前。例如:-mtime 0 表示文件修改時間距離當前爲0天的文件,即距離當前時間不到1天(24小時)之內的文件。-mtime 1 表示文件修改時間距離當前爲1天的文件,即距離當前時間1天(24小時-48小時)的文件。-mtime+1 表示文件修改時間爲大於1天的文件,即距離當前時間2天(48小時)以外的文件-mtime -1 表示文件修改時間爲小於1天的文件,即距離當前時間1天(24小時)以內的文件爲何-mtime+1 表示文件修改時間爲大於1天的文件,即距離當前時間48小時以外的文件,而不是24小時以外的呢?由於n值只能是整數,即比1大的最近的整數是2,全部-mtime+1不是比當前時間大於1天(24小時),而是比當前時間大於2天(48小時)。

相關文章
相關標籤/搜索