그래서 내가 아는 모든 도구는 헤더, 파일 이름, 추가 체크섬 등을 포함한 일부 파일 형식으로 압축 된 알고리즘 스트림을 압축합니다.리눅스에서 파일로부터 벌거 벗은 스트림을 생성하는 방법은 무엇입니까?
수축 된 압축 스트림 만 포함하는 파일을 직접 생성 할 수 있습니까? RFC-1951에 설명 된대로 일부 표준 Linux 도구 + bash를 사용합니까?
그래서 내가 아는 모든 도구는 헤더, 파일 이름, 추가 체크섬 등을 포함한 일부 파일 형식으로 압축 된 알고리즘 스트림을 압축합니다.리눅스에서 파일로부터 벌거 벗은 스트림을 생성하는 방법은 무엇입니까?
수축 된 압축 스트림 만 포함하는 파일을 직접 생성 할 수 있습니까? RFC-1951에 설명 된대로 일부 표준 Linux 도구 + bash를 사용합니까?
나는 그것을 할 수있는 몇 가지 개발 도구를 보았지만 원시 압축 된 스트림은 일반적으로 쓸모가 없기 때문에 일반적인 도구를 사용하면 (즉시) 가능하지 않습니다.
그렇지 않으면 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에 정의되어 있습니다.
gzip -nc file
또는 gzip < file
은 10 바이트 헤더와 8 바이트 트레일러가있는 수축 흐름을 표준 출력으로 생성합니다. dd
을 사용하여 헤더 및 예고편을 삭제할 수 있지만, 끝을 자르려면 dd
에 올바른 값을 제공하려면 출력의 크기를 확인해야합니다.
(임시 파일을 작성하지 않고도) 약간 더 나은 솔루션은 다음과 같습니다
cat something | gzip --no-name | tail --bytes=+11 | head --bytes=-8 > gzip-without-anything