weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          使用find搜索文件

          可以使用 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) 聯機幫助頁。

          from: http://docs.hp.com/zh_cn/5187-2211/ch02s18.html

          posted on 2005-11-28 13:33 weidagang2046 閱讀(771) 評論(0)  編輯  收藏 所屬分類: Linux

          主站蜘蛛池模板: 哈密市| 三明市| 昭平县| 九台市| 安吉县| 岚皋县| 长乐市| 雷州市| 中卫市| 台东县| 乌拉特中旗| 青田县| 余干县| 永新县| 吉安县| 兴安县| 周口市| 阳春市| 宜黄县| 台安县| 太原市| 新和县| 兰考县| 驻马店市| 扶余县| 武威市| 临湘市| 吴桥县| 项城市| 遵化市| 洪江市| 阜新| 遂平县| 左贡县| 徐州市| 武鸣县| 房山区| 普兰店市| 光泽县| 龙川县| 海口市|