如何建立一個提供檔案名稱及其來源目錄資訊的新檔案

如何建立一個提供檔案名稱及其來源目錄資訊的新檔案

我有一個目錄,其中包含很多子目錄和檔案。我想建立一個提供每個文件名稱及其來源目錄路徑資訊的文件

例如:

  • 我有一個資料夾名稱sample,其中包含sample1和sample2子目錄
  • 我在範例 1 中有 ex1.csv、ex2.csv,在範例 2 目錄中有 ex3.csv、ex4.csv

我需要創建一個文本文件(或)csv 文件,它以以下方式提供信息

ex1.csv,樣本/樣本1

ex2.csv,樣本/樣本1

ex3.csv,樣本/樣本2

如果有人幫我在 unix 中建立腳本檔案那就太好了

先致謝

答案1

給定一個像這樣的結構

$ tree sample
sample
├── sample1
│   ├── ex1.csv
│   └── ex2.csv
└── sample2
    ├── ex3.csv
    └── ex4.csv

2 directories, 4 files

您可以使用

$ find sample -type f -printf '%f,%h\n'
ex2.csv,sample/sample1
ex1.csv,sample/sample1
ex3.csv,sample/sample2
ex4.csv,sample/sample2

man find,相關的-printf格式說明符是

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

       %h     Leading directories of file's name (all but the last ele‐
              ment).  If the file name contains no slashes (since it is
              in the current directory) the  %h  specifier  expands  to
              ".".

如果您希望將結果保存在文件中,只需使用運算符重定向命令輸出>即可,例如

find sample -type f -printf '%f,%h\n' > filelist

相關內容