У меня есть каталог, который содержит так много подкаталогов и файлов в них.Я хотел бы создать файл, который содержит имя каждого файла и информацию о пути к исходному каталогу
Например:
. Мне нужно создать текстовый файл (или) файл CSV, который предоставляет информацию в следующим образом
ex1.csv, sample / sample1
ex2.csv, sample / sample1
ex3.csv, sample / sample2
Было бы здорово, если бы кто-нибудь помог мне создать файл сценария в unix
Заранее спасибо
Учитывая структуру как
$ 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