파일 이름과 소스 디렉터리 정보를 제공하는 새 파일을 만드는 방법

파일 이름과 소스 디렉터리 정보를 제공하는 새 파일을 만드는 방법

너무 많은 하위 디렉터리와 파일이 포함된 디렉터리가 있습니다. 각 파일 이름과 소스 디렉터리 경로 정보를 제공하는 파일을 만들고 싶습니다.

예를 들어:

  • 샘플1 및 샘플2 하위 디렉터리가 포함된 폴더 이름 샘플이 있습니다.
  • 샘플 1에는 ex1.csv, ex2.csv가 있고 샘플 2 디렉터리에는 ex3.csv, ex4.csv가 있습니다.

다음과 같은 방식으로 정보를 제공하는 텍스트 파일(또는) csv 파일을 만들어야 합니다.

ex1.csv,샘플/샘플1

ex2.csv,샘플/샘플1

ex3.csv,샘플/샘플2

누군가가 유닉스에서 스크립트 파일을 생성하도록 도와준다면 좋을 것입니다.

미리 감사드립니다

답변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

관련 정보