Linux下的搜索工具find基本用法

我們經常要在日常的工作中查找文件,要說linux下最強大的文件查找工具,非find莫屬。find可以從文件名、讀取修改時間、大小、類型等等來篩選文件,可以完成日常幾乎所有的查找需求。
來看一個簡單的例子:
find /tmp/ -name 'galeki*'
意思就是在/tmp目錄下找出以“galeki”開頭的文件,-name指出是對文件名進行篩選,是不是很簡單明瞭?除了文件名,find還有更強大的篩選條件:
1.時間:
參數 意義
-atime n 上一次存取時間在n*24小時前以內的文件
-ctime n 上一次狀態改變在n*24小時前以內的文件
-mtime n 上一次修改時間在n*24小時前以內的文件
-newer file 比file所指的文件還要新的文件
2.大小:
參數 意義
-size n[bkMG] 大小爲n(b爲比特,k爲KB,M爲MB,G爲GB)的文件

3.所有者:

參數 意義
-user name 所有者用戶名稱是name的文件
-group name 所有者用戶組羣名稱是name的文件

例子:

find /tmp/ -name 'sess*' -mtime 1   #在/tmp目錄下找到所有以'sess'開頭、並且在一個小時以內修改過的文件
find ./ -name '*.zip' -size 546k       #在當前目錄下找到所有546KB的zip壓縮包文件
find /tmp/ -user 'galeki'               #在/tmp目錄下找到所有所有者爲galeki的文件
另外,還可以用"+"、"-"來進一步修飾時間和大小的條件:
find src/ -mtime +2            #找出src目錄下上一次修改時間在2天以前的文件
find download/ -size +50M    #在download目錄下找出大於50M的文件
光找出文件還不夠,我們還要對找出的文件進行處理纔有意義,一般來講可以把find的查找結果傳遞給其他的命令做進一步處理。find本身也提供了許多處理動作的選項。
常用的處理動作:
參數 意義
-print
打印出找出文件的完整地址,一個文件一行
-delete
刪除找出的文件
-exec command {} \;
對每一個找到的文件執行command命令,
並用文件替換"{}",“\;”是固定的結束符。

 

 

 

 

 

例子:

find /tmp/ -ctime +7 -delete            #刪除/tmp目錄下一週以前創建的文件
find ./ -name '*.unk' -exec file {} \;   #找出當前文件夾下後綴是unk的文件,並用file命令顯示每個文件的文件類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章