tar.gz
여러 zip
파일 이 포함된 파일을 받았습니다 . 아래에 복사되어 있습니다.
$ rm -Rf zipdir; mkdir zipdir; echo foo > zipdir/a.txt; echo bar > zipdir/b.txt; cd zipdir; zip -m a.zip a.txt ; zip -m b.zip b.txt; cd ..; tar -czvf zipdir.tar.gz zipdir
$ tar tzfO zipdir.tar.gz
zipdir/
zipdir/a.zip
zipdir/b.zip
$ tar xzfO zipdir.tar.gz --no-anchored a.zip | gunzip -c
foo
$ tar xzfO zipdir.tar.gz --no-anchored b.zip | gunzip -c
bar
어떤 이유로 gunzip
(또는 zcat -r
)을 사용하여 추출하면 첫 번째 파일에서 중지됩니다. 후속 파일은 처리되지 않습니다.
$ tar xzfO zipdir.tar.gz | gunzip -c
foo
콘텐츠 연결 방법모두STDOUT에서 zip 파일이 전송되었나요?
$ tar xzfO zipdir.tar.gz | ?
foo
bar
답변1
GNU 사용 tar
:
$ zcat zipdir.tar.gz | tar x --to-command='zcat $TAR_FILENAME'
bar
foo
이는 원본 파일의 압축을 풀지 않고 tar.gz
각 zip 파일의 내용을 표준 출력으로 추출합니다. (tar의 내 순서가 반대이므로 bar
이전에 foo
.)