stdin에서 gzip으로 파이프 할 수 있습니까?


8

명령을 실행 s3cmd get s3://bucket/file.gz -하면 화면에 이진 출력이 나타납니다. 이것을 gzip으로 파이프하려고하면 s3cmd get s3://bucket/file.gz - | zcat얻을 수 gzip: stdin: not in gzip format있습니다.

어떻게 얻을 수 zcat에서 입력의 선택을 stdin?

답변:


11

gzip보조 명령은 모두 기본적으로 STDIN에서 읽습니다. 우리는 이것을 간단한 테스트로 테스트 할 수 있습니다 :

$ echo testing | gzip | zcat
testing

또는 그것이 우연이 아니라는 것을 증명하기 위해 더 이국적인 것

$ dd if=/dev/urandom of=bigfile bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 6.42114 s, 16.3 MB/s

$ sha1sum bigfile 
25b4832d3e738e70721d86695ea7a767a3afb229  bigfile

$ cat bigfile | gzip | zcat | sha1sum 
25b4832d3e738e70721d86695ea7a767a3afb229  -

그것은 당신의 s3cmd출력이 어떤 식 으로든 더럽거나 변형 되었음을 나타냅니다 . 실제 파일 이름을 제공하는 대신 파일로 리디렉션 한 다음과 같은 출력을보십시오 head. 또는 올바르게 다운로드하여 비교하십시오.


나는 당신이 s3cmd출력 에 대해 옳다고 생각합니다 . 나는 접근 방식을 바꾸어 curl대신 사용 했다.
KalenGi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.