Linux에서 특정 파일을 재귀적으로 압축을 푸는 방법은 무엇입니까? [복사]

Linux에서 특정 파일을 재귀적으로 압축을 푸는 방법은 무엇입니까? [복사]

타르가 많아요 (.tar.bz2)에는 여러 파일 형식의 파일이 포함되어 있습니다.재귀 디렉터리. 한 가지 유형의 파일만 추출하고 싶습니다(예를 들어. txt파일) 모든 디렉토리에서. 어떻게 해야 하나요? 나는이 명령을 가지고모든 파일 추출각 디렉토리에서:

for file in *.tar.bz2; do tar -jxf "${file}"; done

그냥 추출하고 싶은데".TXT"전체 대신 파일.

답변1

GNU tar 맨페이지를 인용하면 다음과 같습니다.

따라서 이름이 ".c"로 끝나는 파일을 추출하려면 다음을 사용할 수 있습니다.

$ tar -xf foo.tar -v --wildcards '*.c'

따라서 귀하의 경우에는 다음을 선택하겠습니다.

for file in *.tar.bz2; do tar -jxf "${file}" --wildcards '*.txt'; done

답변2

bsdtar를 사용하면 glob을 지정할 수 있습니다:

for file in *.tar.bz2; do tar -jxf "$file" '*.txt'; done

gnutar를 사용하려면 --wildcards 플래그를 추가해야 합니다.

for file in *.tar.bz2; do tar -jxf "$file" --wildcards '*.txt'; done

관련 정보