Unix系統命令Find的基本用法介紹

2021-05-27 15:19:46 字數 2017 閱讀 9067

unix中的find 命令不僅能夠簡單地用來定位檔案,還可以自動地執行其他unix 命令的序列,其中使用所查詢到的檔名作為輸入。 unix 的 find 命令可以刪除、複製、移動和執行其查詢到的檔案。另外,使用 -exec 引數可以根據您所需要的 unix 命令的序列來自動地執行這些檔案。它甚至可以在對任何檔案執行這些操作前,進一步讓您進行確認。

與大多數 unix 命令一樣,unix find 命令具有一長串令人生畏的選項和開關,它們會阻礙人們深入地學習該命令,但正是因為其範圍廣闊,真正的explorer並不會被它們嚇倒。一條好的通用原則在簡化乙個複雜問題時都會經過漫長的過程。啟動乙個xterm,並嘗試執行下面的命令:

$ find . -name *.gif -exec ls {} \;

-exec 引數中包含了真正有價值的操作。當查詢到匹配搜尋條件的檔案時,-exec 引數定義了將對這些檔案進行什麼操作。

該示例告訴計算機進行如下操作:

1. 從當前資料夾開始往下搜尋,緊跟在 find 之後,使用點號 (.)。

2. 定位所有名稱以 .gif 結尾的檔案(圖形檔案)。

3. 列出所有查詢到的檔案,使用ls 命令。

需要對 -exec 引數進行更深入地研究。當查詢到匹配搜尋條件的檔名時,find 命令執行 ls {} 字串,用檔名和路徑代替文字 {}。

假設在搜尋中查詢到saturn.gif 檔案,find 將執行如下所示的命令: $ ls ./gif_files/space/solar_system/saturn.gif 本文餘下的內容建立在這條一般原則之上:仔細地使用 find 命令可以讓 unix 檔案系統的管理工作變得更加容易。例如,如果您使用了 -fstype 引數,find 命令可以根據查詢到的檔案所處的檔案系統的型別來對命令進行相應的處理。

在 find 命令對查詢到的檔案執行相應命令前將對您進行提示,這通常是非常有用的,您可以使用 -ok 引數告訴它繼續執行該操作,接下來我們將對其進行介紹。 可選的執行 -ok 是 -exec 引數的乙個重要的替代項,它的行為和 -exec 一樣,但它會提示您是否要對檔案執行相應的命令。

假設您想要刪除 home 目錄中的大部分 .txt 檔案,但希望能夠逐個檔案地執行該操作。像 unix 中的 rm 命令那樣的刪除操作是很危險的,因為當使用像 find 這樣的自動化處理方式來查詢檔案時,它可能一不小心會刪除重要的檔案,您也許希望在刪除這些系統查詢到的檔案之前對其進行仔細檢查。

下面的命令列出了您的 home 目錄中所有的 .txt 檔案。要刪除這些檔案,必須在 find 命令通過列出檔名提示您確認操作時輸入 y 或者 y: $ find $home/. -name *.txt -ok rm {} \; 它列出了查詢到的每個檔案,並且系統將暫停以等待您輸入 y 或者 y。如果您按下 enter 鍵,系統將不會刪除該檔案。

-ok 引數允許您控制每個查詢到的檔案的自動化處理過程,這樣就新增了一種避免自動刪除檔案的安全措施。

如果在使用 -ok 引數時涉及到過多的檔案,那麼乙個好的方法是先執行帶 -exec 的 find 命令以列出所有將要刪除的檔案,然後在經過檢查確保其中不會刪除重要的檔案後,再次執行該命令,其中用 rm 代替 ls。 -exec 和 -ok 都非常有用,您必須確定在當前情況下哪乙個能夠更好的工作。請記住,安全第一!

您可以使用 find 命令來清除目錄或子目錄中在正常使用過程中生成的臨時檔案,這樣可以節省磁碟空間。要實現該操作,請使用下面的命令: $ find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \; 括號中的檔案掩碼 標識出了需要刪除的檔案型別,每個檔案掩碼的前面都有 -name。該列表可以擴充套件為包括您需要清除的系統中的任何臨時檔案型別。在**的編譯和連線過程中,程式設計師及其工具會生成示例中的那些檔案型別:a.out、*.o 和 core。其他的使用者通常也會生成類似的臨時檔案,可以使用如 *.tmp、*.junk 等檔案掩碼來對命令進行相應的編輯。

find 命令允許您複製目錄中的全部內容,同時保持每個檔案和子目錄的許可權、時間和所有權。要完成該操作,需要組合使用 find 和 cpio命令。

find命令的基本用法

linux 中find 常用示例解析 find h l p d debugopts olevel path expression 其實 h l p d debugopts olevel 這幾個選項並不常用 至少在我的日常工作中,沒 有用到過 上面的find命令的常用形式可以簡化為 find path...

Linux系統find命令詳解

find命令 用途 用於查詢檔案或目錄 格式 find 查詢範圍 查詢條件 常用查詢條件 name 按檔名稱查詢 size 按檔案大小查詢 user 按檔案屬主查詢 type 按檔案型別查詢 print 以 n為換行符列印出檔案 路徑 高階查詢條件 perm 按許可權查詢 ctime cmin 按檔...

linux基本命令(四) find 命令

atime ctime mtime 關於時間的資訊有三個 最近訪問時間 access time atime 最近更改時間 modify time mtime 和 最近狀態改動時間 change time ctime atime 它代表著最近一次訪問檔案的時間,顯示乙個檔案的內容或者執行乙個shell...