재귀적으로 파일을 찾아 하나의 파일로 연결하고 동시에 원본 파일을 삭제하는 방법

재귀적으로 파일을 찾아 하나의 파일로 연결하고 동시에 원본 파일을 삭제하는 방법

내가 이해하는 한 나는 사용할 수 있다

find . -name '*.txt' -exec cat {} \; > all.txt

디렉터리의 모든 텍스트 파일(하위 디렉터리를 반복적으로 탐색)을 이라는 파일로 연결합니다 . 문제는 원본 파일을 저장할 all.txt저장 공간이 충분하지 않다는 것입니다 . all.txt원본 파일을 연결한 후 삭제할 수 있도록 두 명령을 차례로 실행하는 방법이 있습니까 all.txt?

답변1

가장 일반적인 접근 방식은 다음 주소로 전송되는 간단한 한 줄 셸 명령을 작성하는 것입니다 find.

find . -name "*.txt" -exec sh -c 'cat {} >> foobar && rm {}'

참고 사항: glob이 *.txt출력 파일 과 일치하지 않습니다. all.txt추가한 파일(제 경우)이 glob과 일치하지 않으면 foobar극단적인 경우를 피할 수 있습니다 . 나중에 -name이름을 바꾸세요 foobar.

관련 정보