Linux中find命令
阿新 • • 發佈:2018-12-21
find命令用來在指定目錄下查詢檔案。格式為“find [查詢路徑] 尋找條件 操作“ 任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。 多次提到“在Linux中一切皆檔案“,接下來就要見證這句話的力量了。在Linux系統中,搜尋工作一般都是通過find命令來完成的,它可以使用不同的檔案特性作為尋找條件(如檔名、大小、修改時間、許可權等資訊),一旦匹配成功則預設將資訊顯示到螢幕上。以下為find命令的引數以及作用。
-amin<分鐘>:查詢在指定時間曾被存取過的檔案或目錄,單位以分鐘計算; -anewer<參考檔案或目錄>:查詢其存取時間較指定檔案或目錄的存取時間更接近現在的檔案或目錄; -atime<24小時數>:查詢在指定時間曾被存取過的檔案或目錄,單位以24小時計算; -cmin<分鐘>:查詢在指定時間之時被更改過的檔案或目錄; -cnewer<參考檔案或目錄>查詢其更改時間較指定檔案或目錄的更改時間更接近現在的檔案或目錄; -ctime<24小時數>:查詢在指定時間之時被更改的檔案或目錄,單位以24小時計算;
重點講一下-exec引數重要作用。這個引數用於把find命令搜尋到的結果交於緊隨其後的命令作進一步處理,它十分類似於管道符技術,並且由於find命令對引數的特殊要求,因此雖然exec是長格式形式,但依然只需要一個(-)。
find /* -group mail -exec cp -rp {} /mnt/ \;
-group mail 找出組所在mail的檔案
-exce 將找到的結果,進一步處理
-cp rp {} /mnt/ 拷貝find的結果到/mnt
{} 表示find命令搜尋出的每一個檔案
\; 命令結尾必須是\;
部分命令詳細說明
-maxdepth 最深幾層 ##find/etc -maxdepth 2 -name passwd
-mindepth 最淺幾天層
-not
-user
-group ##find/mnt -not -user root -a -group lee
-a 並且
-o 或者
-size<檔案大小>:查詢符合指定的檔案大小的檔案;
-size 20k 找出大小20k的檔案
-size -20k 找出比20k小的檔案
-size +20k 找出比20k大的檔案
-ctime 10 找出10天被改過的檔案
-ctime -10 找出10天內改過的檔案
-ctime +10 找出10天外改過的檔案
-cmin +|-10 分鐘
-cmin 10
-perm -004 找出o含有r許可權的檔案
-perm 444 找出許可權為444的檔案
-perm /444 或,找出滿足許可權rrr三個條件中任意一個的檔案