단일 명령으로 .tar.gz에서 처음 n 바이트를 추출하고 .tar.gz로 출력합니다.

단일 명령으로 .tar.gz에서 처음 n 바이트를 추출하고 .tar.gz로 출력합니다.

입력으로 .tar.gz가 있고 그 중 처음 128MiB를 추출하여 단일 명령으로 .tar.gz로 출력하려고 합니다. 나는 시도했다:

sudo tar xzOf input.tar.gz | sudo dd of=output bs=1M count=128 iflag=fullblock | sudo tar -cfz final.tar.gz -T -

이것은 분명히 작동하지 않습니다. 어떻게 해야 하나요?

답변1

아카이브의 내용을 추출하려고 시도하지 말고(여기에서는 작동하지 않습니다. 개별 파일의 메타데이터를 추적할 수 있는 방법이 없습니다) 대신 압축을 풀고 자르고 다시 압축하십시오. 이 작업을 수행하는 버전이 있는 경우 head:

gzip -dc input.tar.gz | head -c128M | gzip -c > final.tar.gz

또는 dd다음 명령을 사용할 수 있습니다.

gzip -dc input.tar.gz | dd bs=1M count=128 iflag=fullblock | gzip -c > final.tar.gz

관련 정보