วิธีการ gzip หลายไฟล์เป็นไฟล์ gz เดียว?


74

ฉันมี 100 ไฟล์: cvd1.txt, cvd2.txt...cvd100.txt

วิธีการgzip100 ไฟล์เป็นหนึ่ง.gzไฟล์เพื่อที่ว่าหลังจากที่ฉันgunzipมันก็ควรจะมีcvd1.txt, cvd2.txt... cvd100.txtแยกต่างหาก?

คำตอบ:


40

ถ้าคุณมีซิป

zip myzip.zip cvd*.txt

ไม่จำเป็นต้องให้tarพวกเขาก่อน


1
@ Kurumi- โปรแกรม Windows เช่น Winzip หรือ 7-zip รู้จักไฟล์. zip หรือไม่

1
@Tony ฉันเชื่อว่าพวกเขาทำ ฉันทดสอบรุ่นลินุกซ์ 7-zip ด้วย zip และสามารถแตกไฟล์ได้ ถ้าคุณต้องการมี GNU zip สำหรับ windows ด้วย

คุณจะสูญเสียzgrep, zcmp, zdiffและทุกประเภทของเครื่องมือที่สามารถทำงานในท่อโดยทางเลือกของรูปแบบที่ไม่ streamable เรียกว่าซิป ผู้ใช้ไฟฟ้าใช้ท่อ
Tankman 六四

83

คุณต้องการtarไฟล์ของคุณร่วมกันและgzipไฟล์ tar ที่เกิดขึ้น

tar cvzf cvd.tar.gz cvd*.txt

หากต้องการยกเลิกไฟล์ tar ของ gzip คุณจะทำ:

tar xvzf cvd.tar.gz -C /path/to/parent/dir

สิ่งนี้จะแยกไฟล์ของคุณภายใต้/path/to/parent/dirไดเรกทอรี


6
หากคุณตั้งชื่อไฟล์ด้วยนามสกุล. tgz, (ย่อมาจาก tar gz) จากนั้นโปรแกรมของ Windows จะรับรู้ว่าเป็นสิ่งที่ winzip ฯลฯ สามารถดำเนินการได้ ขอแสดงความยินดีกับ SiegeX สำหรับ 10K ของคุณ!
shellter

23

คุณจะต้องการใช้ tar เช่น:

tar -czvf file.tar.gz cvd*.txt

tar จะรวมไฟล์เข้าด้วยกันในขณะที่ gzip จะทำการบีบอัดข้อมูล

วิธี manz gzip:

หากคุณต้องการสร้างไฟล์เก็บถาวรไฟล์เดียวที่มีสมาชิกหลายคนเพื่อให้สามารถแยกสมาชิกได้ในภายหลังให้ใช้ตัวจัดเก็บเช่น tar หรือ zip GNU tar สนับสนุนตัวเลือก -z เพื่อเรียกใช้ gzip อย่างโปร่งใส gzip ได้รับการออกแบบมาเป็นส่วนเติมเต็มให้กับ tar ไม่ใช่เป็นการทดแทน


13

gzip ด้วยตัวเองไม่รู้อะไรเลยเกี่ยวกับโครงสร้างไฟล์ ในการทำสิ่งที่คุณต้องการคุณต้องใส่ไฟล์ลงในไฟล์คอนเทนเนอร์บางประเภท (เช่นโครงสร้าง tar หรือคล้ายกัน) จากนั้น gzip นั้น tar มีสวิตช์ z และ j (สำหรับ bzip2) บนแพลตฟอร์ม GNU เพื่อทำสิ่งนี้


2
สวิตช์เป็น 'z' จริง ๆ ('x' ใช้สำหรับแยก) ดีที่คุณพูดถึง 'j' / bzip2 - การบีบอัดที่เข้มงวดมากขึ้น

5

คุณสามารถทำได้โดยใช้:

gzip my_final_filename.gz my_first_file my_second_file ... my_last_file

gunzip my_final_filename.gz

หรือ

zip my_final_filename.zip my_first_file my_second_file ... my_last_file

unzip my_final_filename.gz

หรือ

tar cvzf my_final_filename.tar.gz my_first_file my_second_file ... my_last_file

tar -czvf my_final_filename.tar.gz

ฉันไม่คิดว่าคำสั่งแรกของคุณใช้งานได้ อย่างน้อยโดยทั่วไป ถ้ามันใช้ได้กับเชลล์คุณควรระบุมัน ฉันจะลงคะแนนถ้าฉันมีตัวแทนเพียงพอ
DPM

@DPM ถูกต้องgzip/gunzipคำสั่งไม่ทำงานมันจะส่งคืนข้อผิดพลาดgzip: my_final_filename.gz: No such file or directory
Bilal

1

ในการบีบอัดไฟล์หลาย ๆ ไฟล์ที่มีรูปแบบต่างกัน

tar -czvf deploy.tar.gz **/Alice*.yml **/Bob*.json

สิ่งนี้จะเพิ่มไฟล์ .yml ทั้งหมดที่ขึ้นต้นด้วย Alice จากไดเรกทอรีย่อยใด ๆ และเพิ่มไฟล์. json ทั้งหมดที่เริ่มต้นด้วย Bob จากไดเรกทอรีย่อยใด ๆ


ตอบไปแล้วในsuperuser.com/a/334830/107419
prayagupd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.