在linux中將子目錄中的檔案名稱寫入csv文件

在linux中將子目錄中的檔案名稱寫入csv文件

以前我問過一個非常類似的問題,但它只是針對一個子目錄在linux命令列中將子目錄中的檔案寫入csv檔案並將其儲存到父目錄。我有一個名為「dir」的目錄,其中有 5 個子目錄,sub1、sub2、..sub5。每個子目錄下都有很多檔案。我想將所有子目錄中的文件清單寫入 CSV 文件,並使用 Linux 上的命令列將其儲存到「dir」目錄中。我的程式碼就是這樣做的,除了我只想要檔案名稱(name1,name2等),但它用路徑(./sub1/name1,./sub1/name2等)寫入完整的檔案名稱。我在 dir 資料夾中使用的命令列是;

dir$ find . -type f  > names.csv

答案1

既然你已經將你的問題標記為“Linux”,我假設你有 GNU find- 在這種情況下你可以使用

find . -type f -printf '%f\n' > names.csv 

man find

          %f     File's  name  with  any leading directories removed (only
                 the last element).

答案2

dir$ find . -type f -execdir basename {} \; > names.csv

解釋

  • -execdir對每個結果執行以下命令。
  • basename {} \;刪除final之前的部分/{}找到的每個目錄的替代品。請參閱man find以獲取更多資訊。

相關內容