
我有一個目錄,其中包含很多子目錄和檔案。我想建立一個提供每個文件名稱及其來源目錄路徑資訊的文件
例如:
- 我有一個資料夾名稱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