回覆列表
  • 1 # 雲瑄軟體

    新建一個shell檔案

    輸入以下程式碼

    執行指令

  • 2 # 產品經理老胡

    看題目應該是Linux下的shell吧,我就以Linux為例來解答此題目了。使用Shell遍歷目錄及其子目錄中的所有檔案,老規矩,先問題分解:

    獲取某目錄及該目錄中的子目錄的所有檔案列表

    迴圈對獲取的檔案列表進行處理

    隆重介紹一下find命令,獲取檔案列表

    find本來是用來遞迴查詢檔案的,當我們把關鍵字引數去掉之後,就可以實現遍歷的功能。當設定遞迴的深度為2時,就可以滿足我們解答本題的需求。為了演示,我先設定了一個目錄man,下面有一些檔案和目錄:

    我們來執行下面的命令,獲取目錄man和它下面的檔案,以及子目錄下的檔案:

    find man -maxdepth 2

    這句命令的含義是在man目錄下進行深度為2的遍歷查詢檔案,因為沒有設定查詢條件,所以每遇到一個檔案都滿足查詢條件,檔名就會被打印出來:

    寫出迴圈,實現完整的功能

    使用for迴圈,遍歷find語句提供的列表:

    也可以寫成一行在終端直接執行:

    for i in $(find man -maxdepth 2); do echo $i; done

    大功告成!

    補充一點,如果不需要遍歷到man和ager這兩個目錄的話,在find語句中加一個引數-type f,就只剩下檔案了。

    for i in $(find man -maxdepth 2 -type f); do echo $i; done

    總結一下,Linux下使用終端操作時,遇到這種需求一定要先進行問題分解,不要忙於找現成的命令,根本還是要熟悉find的運用,可以事半功倍。得到檔案列表之後,再進行遍歷的操作。

  • 中秋節和大豐收的關聯?
  • 豐澤1618玉米種介紹?