
以前我問過一個非常類似的問題,但它只是針對一個子目錄在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
以獲取更多資訊。