Linux下find命令在目錄結構中搜索⽂件,並執⾏指定的操作。
Linux下find命令提供了相當多的查找條件,功能很強⼤。由於
find具有強⼤的功能,所以它的選項也很多,其中⼤部分選項都值
得我們花時間來了解⼀下。即使系統中含有網絡⽂件系統( NFS),
find命令在該⽂件系統中同樣有效,只你具有相應的權限。
現在我就find這條命令及其常用選項做個描述:
- 命令格式
find pathname -options [-print -exec -ok …] - 命令參數
pathname: find命令所查找的目錄路徑。例如⽤.來表⽰當前⺫
錄,⽤/來表⽰系統根目錄。
-print: find命令將匹配的⽂件輸出到標準輸出。
-exec: find命令對匹配的⽂件執⾏該參數所給出的shell命
令。相應命令的形式爲’command’ { } \;,注意{ }和\;
之間的空格。
-ok: 和-exec的作⽤相同,只不過以⼀種更爲安全的模式來執⾏
該參數所給出的shell命令,在執⾏每⼀個命令之前,都會給出提
⽰,讓⽤戶來確定是否執⾏;
- 命令選項
-name 按照⽂件名查找⽂件,查找時文件名大小寫敏感(-iname 不區分大小寫),只能搜索到文件名,如果需要搜索文件內容裏包含的特定字符串,需要用grep(用的最常見);
-perm 按照⽂件權限來查找⽂件。
-prune 使⽤這⼀選項可以使find命令不在當前指定的目錄中查
找,如果同時使⽤-depth選項,那麼-prune將被find命令忽
略。
-user 按照⽂件屬主來查找⽂件。
-group 按照⽂件所屬的組來查找⽂件。
-mtime -n +n 按照⽂件的更改時間來查找⽂件, - n表⽰⽂
件更改時間距現在n天以內,+ n表⽰⽂件更改時間距現在n天以
前。find命令還有-atime和-ctime 選項,但它們都和-m time
選項相同。
-nogroup 查找⽆有效所屬組的⽂件,即該⽂件所屬的組在/etc/groups中不存在。
-nouser 查找⽆有效屬主的⽂件,即該⽂件的屬主在/etc/
passwd中不存在。
-newer file1 ! file2 查找更改時間⽐⽂件file1新但⽐⽂
件file2舊的⽂件。
-type 查找某⼀類型的⽂件,諸如:
b - 塊設備⽂件。
d - 目錄。
c - 字符設備⽂件。
p - 管道⽂件。
l - 符號鏈接⽂件。
f - 普通⽂件。
-size n:[c] 查找⽂件⻓度爲n塊的⽂件,帶有c時表⽰⽂件⻓
度以字節計。
-depth:在查找⽂件時,⾸先查找當前目錄中的⽂件,然後再在其
⼦目錄中查找。
-fstype:查找位於某⼀類型⽂件系統中的⽂件,這些⽂件系統類
型通常可以在配置⽂件/etc/fstab中找到,該配置⽂件中包含了
本系統中有關⽂件系統的信息。
-mount:在查找⽂件時不跨越⽂件系統mount點。
-follow:如果find命令遇到符號鏈接⽂件,就跟蹤⾄鏈接所指向
的⽂件。
-cpio:對匹配的⽂件使⽤cpio命令,將這些⽂件備份到磁帶設備
中。