Linux中,whereis和locate都是基於文件數據庫進行文件和目錄的查找的,而find則會去查找硬盤,所以,儘管可能會比較費時間,但卻是最精確和最可靠的。本文介紹下find命令的詳細用法。
命令格式
find命令一般使用格式爲:
find [pathname] [options] [-exec…],即,可以加的選項很多。如圖。
常見參數
pathname:所查找的目錄路徑
該路徑可以是一個路徑,也可以是多個。
-print:將查看結果輸出,這是默認選項
-exec:用法爲-exec COMMAND {} \; ,指針對find的查找結果,執行COMMAND命令。
常見選項
-name NAME:按照文件名進行查找
需要注意的是,-name和文件name之間並沒有等於號。
-perm PERM:按照文件權限進行查找
上圖中,查找/bin下權限大於4000的文件,即查找出了所有的SUID文件。同理,所有的SGID文件(目錄)權限爲+2000,而所有的SBIT目錄的權限爲+1000.
結合-exec選項,可以將查找結果ls出來,如下:
需要注意的是,{}中間無空格。
-user USER:按照用戶名進行查找
-group GROUP:按照組名進行查找
-mtime n/+n/-n:按照文件的更改時間來查找,n表示n天前24小時內修改過的文件,+n表示n天前修改過的文件,-n表示n天內修改過的文件。比如說,n爲4,則+n/-n/n意思如下:
比如:
上圖表示查找從當前起前24小時內更改過的文件。
-nouser:查找無有效用戶的文件
當刪除某用戶時,該用戶所創建的文件就成了無有效用戶文件。
-nogroup:查找無有效組的文件
-newer file1:查找比file1更改時間新的文件
-type:查找某一類型的文件,如:
b:查找塊設備文件
d:查找目錄
c:查找字符設備文件
p:查找管道文件
l:查看鏈接文件
f:查找普通文件
-size n:查找文件大小爲n的文件,也可以使用+、-來表示大於或小於N的文件。