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

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

이전에 매우 유사한 질문을 했지만 하나의 하위 디렉터리에만 해당되었습니다.하위 디렉터리의 파일을 csv 파일에 쓰고 Linux 명령줄의 상위 디렉터리에 저장합니다.. 'dir'이라는 디렉터리가 있고 그 안에 sub1, sub2,..sub5라는 5개의 하위 디렉터리가 있습니다. 각 하위 디렉터리에는 많은 파일이 있습니다. 모든 하위 디렉터리의 파일 목록을 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 {} \;최종 전에 부품을 제거하십시오 /. {}발견된 각 디렉토리의 대체 항목입니다 . 자세한 내용은 을 참조하세요 man find.

관련 정보