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