回到網頁內容 臺灣-繁體中文
HP.com 首頁 產品資訊 支�#169;及驅動程式 解決方案 如何購買
» 聯絡 HP
進階選項
HP.com 首頁
使用HP-UX: HP 9000電腦 > 第 2 章. 處理檔案和目錄

使用find搜尋檔案

» 

技術文件

PDF 格式的完整書籍
» 回饋意見
內容©韟像B開©l

 » 目錄

 » 辭彙

 » 索引

您可以使用find命令,在目錄及其子目錄中尋找符合某種準則的檔案。您接下來即可在找到的檔案上執行命令。

尋找符合某種格式的檔案

雖然find的語法可能較為複雜,但它有助於提升您運用HP-UX的效率。此種命令的功能強大,且具有彈性。不過,它執行的速度較慢,尤其在尋找的目錄較多時更是如此。

假設您想顯示現行目錄及子目錄中所有以d開頭的檔案。請輸入:

find(1)

$ find . -name 'd*'

命令中的點(.)會使find搜尋現行目錄及其子目錄。-name選項之後跟隨的檔案名稱或檔案格式(此例中為d*),會讓find搜尋所有符合該格式的檔案名稱。在本例中,find會尋找所有以d開頭的檔案名稱。

請注意,d*要以單引號'd*'括住。如果您要在find命令中使用檔案名稱格式,必須記得將其置於單引號中,shell才能正確地解譯。

尋找比某個檔案新的檔案

假設您想顯示所有在某個檔案建立之後修改過的檔案。若要顯示
/home/leslie目錄及其子目錄中所有比myfile晚建立的檔案,請輸入:

$ find /home/leslie -newer myfile

本例可解譯如下:在/home/leslie目錄及其子目錄中,尋找所有在myfile建立後才修改的檔案。(若想確定檔案最後修改的日期,請使用ll命令。)

在檔案上執行命令

您可以在使用find命令找到的檔案上執行命令。假設您想刪除現行目錄及子目錄中所有副檔名為.tmp的檔案。請輸入:

$ find . -name '*.tmp' -exec rm {} \;

這個範例會尋找現行目錄及其子目錄中所有以.tmp結尾的檔案,將其顯示於螢幕上,並予以刪除。-exec選項會執行rm命令。{ }代表您用find命令找到的檔案。結束exec字串的分號加上反斜線跳出 (\;)。

使用邏輯運算子

find的語法包含邏輯布林運算子:NOT、AND和OR。

若想尋找不符合某種格式的檔案,請用 NOT 邏輯運算子,即驚嘆號 (!)。使用此種運算子後,您必須使用選項來定義檔案屬性,如檔案名稱。接下來,會找到具有您指定屬性的檔案。

例如,若要尋找/tmp屬於leslie的檔案,請使用下行命令:

$ find /tmp \( ! -user leslie \)

\能讓括弧不被shell視為特殊字元。

若要尋找具有兩項特別屬性的檔案,請使用AND邏輯運算子,運算式 -a 運算式。例如,若要尋找/中所有屬於leslie的目錄,請使用下行命令:

$ find / \( -type d -a -user leslie \)

若要尋找具有一或兩項屬性的檔案,請使用OR邏輯運算子,運算式 -o 運算式。例如,若要刪除所有以.o結尾的檔案,或所有名為a.out的檔案 (且未存取達一週之久),請使用下行命令:

$find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm {} \;

若需相關資訊...

若需使用find命令的相關資訊,請參閱《find》(1)線上援助頁。

可列印版本
隱私權聲明 使用範圍與著作權聲明
© Hewlett-Packard Development Company, L.P.