Linux의 csv 파일에 하위 디렉토리의 파일 이름 쓰기

Linux의 csv 파일에 하위 디렉토리의 파일 이름 쓰기

전에도 비슷한 질문을 했는데 하위 디렉터리에만 해당되는 질문이었습니다.하위 디렉터리의 파일을 csv 파일에 쓰고 Linux 명령줄의 상위 디렉터리에 저장합니다.. 5개의 하위 디렉터리(sub1, sub2, ..sub5)가 있는 "dir"이라는 디렉터리가 있습니다. 각 하위 디렉터리에는 많은 파일이 있습니다. 모든 하위 디렉터리의 파일 목록을 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.

관련 정보