คำสั่งไปยังโฟลเดอร์ 'gzip' หรือไม่


66

ฉันยังใหม่กับสิ่งที่พรอมต์คำสั่ง Mac คุณจะสร้าง gzip ของโฟลเดอร์ใน Mac OS X ได้อย่างไร? มีคนบอกฉันไม่กี่คนว่าถ้าคุณต้องการสร้าง gzip ของโฟลเดอร์คุณควร 'tar' ก่อนแล้วจึง 'gzip' ถูกต้องหรือไม่


1
นี่ไม่ใช่คำถามการเขียนโปรแกรมใช่ไหม โพสต์ของคุณถูกแท็กด้วยobjective-cแต่คุณกำลังถามเกี่ยวกับบรรทัดคำสั่ง
rakuo15

คำตอบ:


130

Tar เป็นเครื่องมือเก็บถาวรและ gzip เป็นเครื่องมือบีบอัดข้อมูล ในการบีบอัดไดเรกทอรีเต็มขั้นแรกคุณต้องจัดเก็บลงในไฟล์เดียว นั่นคือสิ่งที่งานคือ tar แล้วคุณบีบอัดไฟล์ที่เก็บถาวร คุณสามารถทำงานทั้งสองอย่างในคำสั่ง tar เดียวด้วยตัวเลือกที่เหมาะสม

tar -czf folder_name.tar.gz folder_name /

หากคุณไม่ต้องการสร้างไฟล์เก็บถาวร tar (อาจต้องการบีบอัดไฟล์เดียว) จากนั้นคุณสามารถใช้คำสั่ง gzip โดยตรง

gzip file.txt

มันจะสร้างไฟล์บีบอัดชื่อ file.txt.gz


30
มันเป็นมูลค่าการกล่าวขวัญสิ่งที่ตัวเลือก-czfหลังจากที่tarมีการ: cบ่งบอกว่าคุณต้องการที่จะสร้างที่เก็บน้ำมันzใช้gzipในการเก็บ tar กลางและเป็นชื่อไฟล์สุดท้ายที่ตามมาf folder_name.tar.gz
fideli

13
คำเตือน: gzip file.txtแทนที่ไฟล์ต้นฉบับ
Zoltán

6
@ Zoltánใช้gzip -k file.txtเพื่อ "เก็บ" (อย่าลบ) ไฟล์อินพุต
thohl

13

หากใครบางคนยังคงค้นหาคำถามนี้เมื่อค้นหา "gzip ใน Mac" ฉันเขียนคำแนะนำที่อาจเป็นประโยชน์กับคนอื่น นี่มันไป:

การบีบอัด

คำสั่งพื้นฐานส่วนใหญ่จะบีบอัดไฟล์filename.extแล้วแทนที่ด้วยfilename.ext.gzในไดเรกทอรีเดียวกัน

gzip filename.ext

หากคุณไม่ต้องการสูญเสียไฟล์ต้นฉบับของคุณคุณต้องไพพ์เอาต์พุตของgzip -cไฟล์

gzip -c filename.ext > anotherfile.gz

เราสามารถบีบอัดจากอินพุตมาตรฐานดังนั้นเราสามารถบีบอัดเอาต์พุตของคำสั่งอื่น ๆ

cat filename.ext | gzip > anotherfile.gz

OS X ยังมาพร้อมกับcompressและuncompressคำสั่ง พวกเขาทำเพื่อ "ฉลาด" gzip เพราะมันไม่บีบอัดไฟล์หากมันจะเติบโตหลังจากกระบวนการบีบอัด คำสั่งต่อไปนี้แทนที่filename.extด้วยfilename.ext.Zในไดเรกทอรีเดียวกัน

compress filename.ext

คลาย

หากต้องการกู้คืนไฟล์ไปเป็นสถานะที่ไม่บีบอัดคุณสามารถใช้ gzip หรือไฟล์อื่น ๆ โหมดคลายการบีบอัดของ gzip เรียกว่าพร้อมกับ-dธง โหมดนี้จะแทนที่ไฟล์filename.ext.gzด้วยfilename.extในไดเรกทอรีเดียวกัน นอกจากนี้ยังมีทางลัดที่เรียกgunzipว่าจะทำเช่นเดียวกัน

gzip -d filename.ext.gz
gunzip filename.ext.gz

นอกจากนี้เรายังสามารถไพพ์ไฟล์ที่คลายบีบอัดไปยังเอาต์พุตมาตรฐานเพื่อบันทึกเป็นไฟล์อื่น

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

อีกวิธีที่รวดเร็วในการอ่านเนื้อหาของ gzip ไปยังเอาต์พุตมาตรฐานคือzcatโดยพื้นฐานแล้วมันเหมือนกับการโทรgzip -cdแต่คุณสามารถเรียกหลาย ๆ ไฟล์และทำให้พวกมันเชื่อมต่อกันในลักษณะเดียวกับcatคำสั่ง concats text files ข้อเสียเปรียบเพียงอย่างเดียวคือไฟล์ของคุณจะต้อง.Zต่อท้ายด้วยคำต่อท้ายเพื่อให้ทำงาน ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

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

cat filename.ext.gz | zcat

สิ่งนี้มีประโยชน์มากหากคุณต้องการตรวจสอบเนื้อหาของไฟล์อย่างรวดเร็วและคุณยังสามารถบันทึกเอาต์พุตของ zcat ไปยังไฟล์ได้อย่างง่ายดาย

cat filename.ext.gz | zcat > anotherfile

uncompressเสื้อคลุมทำงานเหมือนgzip -cdแต่ดูเหมือนสำหรับไฟล์ที่มีนามสกุลอัด Z เพื่อแทนที่พวกเขาในไดเรกทอรีปัจจุบันดังนั้นคุณจะต้องระบุชื่อไฟล์ที่คุณต้องการที่จะเรียกคืน แต่ก็ไม่เป็นไรถ้าคุณเรียกมันว่ามีนามสกุลอัด Z เป็น โปรแกรมจะเพิกเฉย

compress filename.ext
uncompress filename.ext

ฉันหวังว่าคุณจะพบคำแนะนำของฉันมีประโยชน์ :)


4

MacOS X เป็น Unix ดังนั้นจึงควรใช้งานได้ (ใช้งานได้กับ GNU / Linux)

tar czvf บีบอัดโฟลเดอร์ tar.gz


3

หากต้องการเพิ่มคำตอบโดย @taskinoor: หากคุณใช้รุ่นไฟล์เดี่ยว aka

gzip file.txt

โปรดระวังว่าไฟล์ต้นฉบับ (file.txt) จะถูกลบและคุณจะมีเฉพาะ file.txt.gz

ฉันจะใส่ความคิดเห็นนี้ แต่ไม่มีกรรมพอที่จะทำเช่นนั้น: =)


1
gzip --keep file.txtfile.txt.gzจะเก็บเดิมและสร้าง gzip --helpดู
Blaise

1

ใช่ถูกต้องแล้ว gzipสามารถบีบอัดไฟล์ได้เท่านั้น tarถอดรหัสเนื้อหาไดเรกทอรีเป็นไฟล์เดียวซึ่งสามารถบีบอัดเพิ่มเติมได้โดยใช้gzip, bzip2, lzmaหรือสิ่งอื่นใด

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