shell編程中的find命令

來源:互聯網
上載者:User

標籤:shell編程   find命令   嵌入式   

find命令的完整文法格式如下所示:

find  [path]  [options]  [tests]  [actions]

  1. path

    path部分很容易理解:既可以使用絕對路徑,如/bin,也可以使用相對路徑,如 . 。如果需要,也可以指定多個路徑,如 find /var  /home。


  2. options

    find命令有許多選項可用,下表列出幾個最常用的選項。

    選項 含義
    -depth        在查看目錄本身之前先搜尋目錄的內容
    -follow 跟隨符號連結
    -maxdepths N                                     最多搜尋N層目錄
    -mount(或者-xdev)                                  不搜尋其他檔案系統的中的目錄(比如裝的是windows和linux雙系統,採用這個選項即可略過對windows系統下磁碟的尋找)

  3. tests

    測試部分,可以提供給find命令的測試非常多,每種測試返回的結果有兩種可能:true 或 false。find 命令開始工作時,它按照順序將定義的每種測試一次應用到它搜尋到的每個檔案上。如果一個測試返回 false,find 命令就停止處理它當前找到的這個檔案,並繼續搜尋。如果一個測試返回 true,find 命令將繼續下一個測試或對它當前檔案採取行動(actions)。下表列出了常用的測試。

    測試 含義
    -atime  N                           檔案在N天之前被最後訪問過
    -mtime  N 檔案在N天之後最後被修改過
    -name  pattern                       檔案名稱(不包括路徑名)匹配提供的模式pattern,為了確保pattern被傳遞給 find 命令而不是由shell來處理,pattern必須總是用雙引號括起
    -newer otherfile                         檔案比otherfile檔案要新
    -type c 檔案的類型為c,c是一個特殊類型。最常見的是d(目錄)和f(普通檔案)。其他可用的類型可參考手冊頁。
    -user username                               檔案的擁有者是指定的使用者username

    在shell指令碼編程中,還可以用操作符來組合測試。大多數操作符有兩種格式:短格式和長格式。見下表:

    操作符,短格式 操作符,長格式 含義
    ! -not 測試取反
    -a -and 兩個測試都必須為真
    -o -or 兩個測試有一個必須為真

    也可以通過使用圓括弧來強制測試和操作符的優先順序。由於圓括弧對shell來說有其特殊的含義,所以還必須使用反斜線來引用圓括弧。此外,如果在檔案名稱處使用的匹配模式,就必須在模式上使用引號以確保模式沒有被shell擴充,而是直接傳遞給find命令。例如,如果想寫一個測試“搜尋的檔案比檔案X要新,或者檔案名稱以底線開頭”,可以這樣寫:
    \(-newer X -o -name "_*" \)

  4. actions

    現在可以可靠地搜尋檔案了。下面看看在發現匹配指定條件的檔案之後,可以執行的動作。下表給出了幾個常見的動作。

    動作 含義
    -exec command      執行一條命令,這是最常見的動作之一。這個動作必須使用 \; (斜杠分號)字元對來結束。
    -ok command 與-exec類似,但它在執行命令之前會針對每個要處理的檔案,提示使用者進行確認。這個動作必須使用 \; 字元對來結束。
    -print 列印檔案名
    -ls 對當前檔案使用命令 ls-dils

    -exec和-ok命令將命令列上後續的參數作為它們參數的一部分,知道被\;序列終止。實際上,-exec和-ok命令執行的是一個嵌入式命令,所以嵌入式命令必須以一個轉義的分號結束,使得find命令可以決定什麼時候它可以繼續尋找用於它自己的命令列選項。



shell編程中的find命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.