2014-11-21 1 views

답변

4

나는 그것을 할 수있는 몇 가지 개발 도구를 보았지만 원시 압축 된 스트림은 일반적으로 쓸모가 없기 때문에 일반적인 도구를 사용하면 (즉시) 가능하지 않습니다.

그렇지 않으면 Linux에서 gzip --no-name은 고정 된 크기의 헤더가 10 바이트 인 압축 된 스트림을 생성합니다. 당신은 dd .E.g : 그것을 트림 좌측 무슨

cat something | gzip --no-name | \ 
    (dd of=/dev/null bs=1 count=10; cat > gzip-without-header) 

모든 출력 파일에서 마지막 8 바이트 (CRC, 압축되지 않은 크기) 제거하는 것입니다

:

dd if=gzip-without-header of=gzip-without-anything \ 
    bs=1 count=$[ `stat -c '%s' gzip-without-header` - 8 ] 

P.S.을 GZip 파일 형식은 RFC1952에 정의되어 있습니다.

1

gzip -nc file 또는 gzip < file은 10 바이트 헤더와 8 바이트 트레일러가있는 수축 흐름을 표준 출력으로 생성합니다. dd을 사용하여 헤더 및 예고편을 삭제할 수 있지만, 끝을 자르려면 dd에 올바른 값을 제공하려면 출력의 크기를 확인해야합니다.

1

(임시 파일을 작성하지 않고도) 약간 더 나은 솔루션은 다음과 같습니다

cat something | gzip --no-name | tail --bytes=+11 | head --bytes=-8 > gzip-without-anything