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小時)。