이에 대한 답은 이미 있을 수도 있습니다. 그러나 나는 그것을 찾을 수 없었다.
나는 가지고있다:
directory
directory/subdirectory/subdirectoryofsubdirectory
directory/sub-subdirectory/subdirectoryofsub-subdirectory/subdirectoryofsubdirectoryofsub-subdirectory
directory/sub-sub-subdirectory
directory/sub-sub-sub-subdirectory
모든 디렉터리와 하위 디렉터리에는 파일이 포함되어 있습니다. 나는 그것들을 모두 나열하고 목록을 cat으로 파이프한 다음 목록을 텍스트 파일로 파이프하고 싶습니다. "한 줄"로 이 작업을 수행할 수 있습니까? 그렇다면 제공해 주십시오. 아니면 스크립팅이 필요합니까? 그렇다면 스크립팅을 위해 어떤 명령/구조가 필요합니까?
답변1
최선의 선택은 find
명령이라고 생각합니다. 디렉터리가 아닌 목록의 파일만 원하는 경우 다음과 같습니다.
find directory/ -type f -print > textfile
find 명령은 파일을 재귀적으로 나열합니다. (디렉토리도 나열하려면 제거하십시오 -type f
). > textfile
cat 없이 stdout을 textfile이라는 파일로 리디렉션합니다 .
find
다양한 옵션을 갖춘 강력한 도구입니다. man find
출력을 약간 조정해야 하는지 확인하십시오 .
고쳐 쓰다(감사해요wxya):
당신이 원한다면콘텐츠파일을 단일 텍스트 파일로 병합하려면 다음 중 한 가지 방법을 사용하세요.
find Documents/ -type f -exec cat {} + > textfile
답변2
find
다음과 같은 일반적인 방법입니다.스티븐 D의 답변설명하다. 쉘이 이를 지원하는 경우 **
여러 하위 디렉토리를 일치시키는 데 사용할 수 있습니다(bash에서는 *
기본값과 동일하며 하나의 하위 디렉토리만 일치하지만 Dennis의 설명 참조). 따라서 다음을 수행할 수 있습니다.
cat **/*