
이전에 매우 유사한 질문을 했지만 하나의 하위 디렉터리에만 해당되었습니다.하위 디렉터리의 파일을 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
.