前言
Linux系統下的Find 命令具有很強大的搜索功能,可以遍歷整個文件系統。所以 find 命令很耗資源,有時候甚至會耗費很長時間,因此建議把它放在后臺執行。
Find 命令格式如下所示:
find pathname -options [-print -exec -ok …]
介紹一種簡單易記的格式:
find <指定目錄> <指定條件> <指定動作>
動作參數
1、-exec 命令名稱 {} /;
對符合條件的文件執行所給的 unix 命令,而不詢問用戶是否需要執行該命令。{}表示命令的參數即為所找到的文件,命令的末尾必須以“ /;”結束,”{}”和”/;”之間必須有一個空格。
2、-ok 命令名稱 {} /;
對符合條件的文件執行所給的 Linux 命令,與exec不同的是,它會詢問用戶是否需要執行該命令。
3、-ls
詳細列出所找到的所有文件。
4、-fprintf 文件名
將找到的文件名寫入指定文件。
5、-print
在標準輸出設備上顯示查找出的文件名。
6、-printf
格式的寫法可考有關C語言的書。
命令選項
1、-name
按照文件名查找文件。
2、-perm
按照文件權限來查找文件。
3、-prune
使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。
4、-user
按照文件屬主來查找文件。
5、-group
按照文件所屬的組來查找文件。
6、-nogroup
查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
7、-nouser
查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
8、-newer file1 ! file2
查找更改時間比文件file1新但比文件file2舊的文件。
9、-regex pattern
文件名與正則表達式 pattern 匹配。這是對整個路徑的匹配,不是搜索文件。例如,要匹配名為 ‘./fubar3' 的文件,可以使用正則表達式 ‘.bar.' 或者 ‘.*b.3',但是不能用`b.*r3'。
10、-type
查找某一類型的文件,諸如:
b - 塊設備文件。 d - 目錄。 c - 字符設備文件。 p - 管道文件。 l - 符號鏈接文件。 f - 普通文件10、-size n:[c]
查找文件長度為n塊的文件,帶有c時表示文件長度以字節計。
11、-depth
在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。
12、-fstype
查找位于某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
13、-mount
在查找文件時不跨越文件系統mount點。
14、-follow
如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
15、-cpio
對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
16、時間控制
-mtime -n +n
按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-mtime選項一樣,按照時間節點來查找文件,但也有一些區別:
新聞熱點
疑難解答