STDIN에서 데이터를 읽는 동안 파일 압축


127

Linux에서 stdin을 읽는 동안 데이터를 압축 (압축 아카이브 작성) 할 수 있습니까?


이 유닉스 및 리눅스에 속했기 때문에 보류 주제로이 질문을 닫으 투표 해요
댄 Dascalescu

답변:


180

예, 이것을 위해 gzip을 사용하십시오. 가장 좋은 방법은 데이터를 입력으로 읽고 압축 파일을 출력 파일로 리디렉션하는 것입니다.

cat test.csv | gzip > test.csv.gz

cat test.csv데이터를 stdout으로 보내고 파이프 기호 gzip을 사용하면 해당 데이터를 stdin으로 읽습니다. 압축 된 데이터가 터미널에 기록되지 않으므로 gzip 출력을 일부 파일로 리디렉션하십시오.


4
test.csv.gz 파일은 데이터 플럭스가 닫힐 때까지 0 크기로 유지됩니다.
MUY Belgium

... 어떻게합니까? 실제로 별도의 질문입니까?
russellpierce

9
이것은 또한 작동합니다 xz:mysqldump mydb | xz > dbdump.sql.xz
jeroen

1
사용할 수 있습니다 -9. 기본 압축 수준은 -6입니다.
Pablo A

110

그렇습니다 gzip. 단순히 실행하면 gzip > foo.gzSTDIN이 foo.gz 파일로 압축됩니다. 다음과 같이 데이터를 파이프 할 수도 있습니다 some_command | gzip > foo.gz.


1

gzip > stdin.gz혹시? 그렇지 않으면, 당신은 당신의 질문을 살려내야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.