เป็นไปได้ที่จะส่งท่อจาก stdin ไปยัง gzip หรือไม่


12

ถ้าฉันรันคำสั่งs3cmd get s3://bucket/file.gz -ฉันจะได้รับเอาต์พุตไบนารีบนหน้าจอ ถ้าฉันพยายามท่อนี้เพื่อ gzip กับฉันได้รับs3cmd get s3://bucket/file.gz - | zcatgzip: stdin: not in gzip format

ฉันzcatจะเลือกจากอินพุตได้stdinอย่างไร

คำตอบ:


17

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ผลลัพธ์ของคุณสกปรกหรือผิดรูปแบบ ลองเปลี่ยนเส้นทางไปยังไฟล์ (แทนที่จะ tha ให้ชื่อไฟล์จริง) headแล้วมองไปที่การส่งออกในสิ่งที่ต้องการ หรือดาวน์โหลดอย่างถูกต้องและเปรียบเทียบ


ฉันคิดว่าคุณพูดถูกเกี่ยวกับs3cmdผลลัพธ์ ฉันเปลี่ยนวิธีการของฉันและใช้curlแทน
KalenGi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.