ฉันจะสร้างและแยกไฟล์เก็บถาวร zip จากบรรทัดคำสั่งได้อย่างไร
ฉันจะสร้างและแยกไฟล์เก็บถาวร zip จากบรรทัดคำสั่งได้อย่างไร
คำตอบ:
โดยทั่วไปจะใช้tar
เพื่อสร้างการเก็บถาวรที่ไม่ได้บีบอัดและอย่างใดอย่างหนึ่งgzip
หรือbzip2
เพื่อบีบอัดที่เก็บถาวร คำสั่งที่สอดคล้องกันgunzip
และbunzip2
สามารถใช้ในการคลายการบีบอัดข้อมูลที่เก็บถาวรหรือคุณสามารถใช้การตั้งค่าสถานะบนtar
คำสั่งเพื่อทำการยกเลิกการบีบอัด
หากคุณอ้างอิงถึงรูปแบบไฟล์ซิปคุณสามารถใช้คำสั่งzip
และunzip
ในการบีบอัด:
zip squash.zip file1 file2 file3
หรือเพื่อบีบอัดไดเร็กทอรี
zip -r squash.zip dir1
หากต้องการคลายการบีบอัด:
unzip squash.zip
สิ่งนี้คลายซิปในไดเรกทอรีการทำงานปัจจุบันของคุณ
zip -r9 archive.zip files...
ไวยากรณ์ (-r = recursive -9 = การบีบอัดสูงสุด)
zip
สามารถสร้างรสชาติที่แตกต่างของคลังเก็บ. ZIP รวมถึงใช้คอมเพรสเซอร์ที่แตกต่างกันมากมาย ในทางกลับกันมีเครื่องมือบีบอัดอื่น ๆ ที่มีชื่อคล้ายกัน: 7-Zip, gzip, bzip2, rzip เป็นต้นซึ่งไม่สามารถใช้แทนกันได้
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
เพื่อแยกลงในไดเรกทอรีใหม่ที่แยกต่างหาก ( myfolder
) แทนที่จะวางไฟล์ทั้งหมดลงในไดเรกทอรีปัจจุบันโดยตรงซึ่งอาจน่ารำคาญหากไฟล์ zip มีไฟล์และไดเรกทอรีจำนวนมากในระดับบนสุด นี่เป็นการเลียนแบบว่าส่วนซิปของเครื่องมือคลายซิปของ UI ทำงานอย่างไร
มีวิธีที่แตกต่างกันมากมายในการบีบอัดและยกเลิกการบีบอัดภายใต้สัญญาซื้อขายล่วงหน้าของ UNIX ดังนั้นฉันจะสมมติว่าคุณหมายถึง "zip" ในความหมายทั่วไปมากกว่ารูปแบบไฟล์เฉพาะ
คุณสามารถ zip ไฟล์ (ในรูปแบบบีบอัด) ด้วยtar
โปรแกรมGNU :
tar -zcvf myfile.tgz .
ซึ่งจะทำไดเรกทอรีปัจจุบัน แทนที่.
ด้วยชื่อไฟล์อื่นถ้าคุณต้องการอย่างอื่น
ในการแตกไฟล์ให้ใช้:
tar -zxvf myfile.tgz
แน่นอนว่าคุณมีtar
ความสามารถในการบีบอัดรวมถึงการรวมไฟล์เป็นหนึ่งเดียว
ถ้าไม่ได้คุณก็สามารถใช้tar cvf
ตามด้วยgzip
(อีกครั้งถ้ามี) สำหรับการบีบอัดและตามมาด้วยgunzip
tar xvf
สำหรับการจัดการที่เฉพาะเจาะจงของรูปแบบไฟล์ ZIP, ฉันจะแนะนำการดาวน์โหลด7zip
และการใช้ว่า - มันตระหนักมากความหลากหลายของรูปแบบไฟล์รวมทั้งหนึ่งไปรษณีย์
tar jcvf file.tar.bz2...
ในการบีบอัดในรูปแบบ bzip2 หรือtar Jcvf file.tar.xz ...
สำหรับการบีบอัด xz
ดีเมื่อมันมาถึงการกระจายไฟล์สำหรับความหลากหลายของระบบปฏิบัติการที่ผมอยากแนะนำให้7-Zip
โดยปกติในแพ็คเกจp7zip
คุณจะได้รับ7z
และ7za
คำสั่งซึ่งคุณสามารถสร้างคลังเก็บ 7z ของคุณเอง
7za
ยังสามารถคลายการบีบอัดไฟล์ zip ( pkzip ) มาตรฐาน ( และสร้างมันขึ้นมาได้ด้วย-tzip
สวิตช์)
การบีบอัด:
7za a archive.7z file1 file2 directory/
คลาย:
7za x archive.7z
นอกจากนี้ยังสามารถสร้างคลังข้อมูลแบบขยายตัวเองได้ด้วย-sfx
สวิตช์:
7za a -sfx archive.exe files1 file2 dir
ฉันแนะนำวิธีนี้ในกรณีที่ผู้ใช้ Windows ไม่สามารถเปิดไฟล์เก็บถาวร 7z (ในกรณีที่คุณต้องการคำแนะนำเครื่องมือสำหรับ: PeaZip )
หากคุณต้องการใช้อัลกอริทึมการบีบอัดเดียวกันกับ tarball ของคุณให้ใช้-J
สวิตช์ด้วยtar
:
tar cJf archive.tar.xz file1 file2 dir
xz
เป็นเครื่องมือ UNIX ที่ใช้ LZMA2 สำหรับการบีบอัด แต่ใช้งานgz
ได้bz2
ดี ฯลฯ มันยังทำงานเป็นตัวกรอง
7z ไม่ได้สร้างไฟล์เก็บถาวรที่มีข้อมูลระบบไฟล์เต็มรูปแบบบน UNIX ดังนั้นคุณต้องใช้tar
ก่อนใช้ 7z (แต่เนื่องจาก 7z เก็บข้อมูลอื่น ๆ เกี่ยวกับtar
ไฟล์ฉันขอแนะนำให้ใช้xz
เนื่องจากมันถูกออกแบบมาเพื่อมัน):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
มันเป็นเครื่องมือเล็ก ๆ ที่ดีที่ทำให้การใช้งานคอมเพรสเซอร์ต่าง ๆ สะดวกสบายยิ่งขึ้น ผูกติดกับa
และสร้างไฟล์เก็บถาวรกลายเป็นa arc.7z folder/
หรือแยกง่ายa arc.7z
unzip <filename>
และ
zip -r archive.zip <filename> [filename]
คุณจะต้องตรวจสอบให้แน่ใจว่าคำสั่งเหล่านี้ติดตั้งผ่านตัวจัดการแพ็คเกจของคุณ มันไม่ยากไปกว่าการใช้สิ่งอื่นในบรรทัดคำสั่ง แน่นอนว่าง่ายกว่าการสร้างที่เก็บถาวรด้วย tar
BSD Tar สามารถทำสิ่งนี้ได้เช่นกัน
bsdtar acf bravo.zip alfa.jpg
หรือ:
bsdtar xf bravo.zip
tar
มีประโยชน์ในการสนับสนุนค่อนข้างไม่กี่รูปแบบการบีบอัดเพิ่มเติมเมื่อเทียบกับ GNU tar
และอื่น ๆtar
s รับประโยชน์มากที่สุดคือบางทีว่ามันไม่ได้ในขณะที่ใช้tar
ไวยากรณ์เหมือน คุณก็สามารถใช้7z
, unrar
, unzip
ฯลฯ จาก commandline แต่พวกเขาใช้ที่แตกต่างกันไวยากรณ์
คำตอบมากที่สุดคือมาตรฐานpax
ซึ่งเป็นที่แนะนำมากกว่าและcpio
tar
ซึ่งแตกต่างcpio
และ POSIX tar
แต่ชอบ GNU tar
, pax
สามารถทั้งไฟล์ที่เก็บและบีบอัดข้อมูลที่เก็บ พฤติกรรมนี้แตกต่างจากการzip
บีบอัดแต่ละไฟล์ก่อนที่จะวางลงในไฟล์เก็บถาวร
pax
จดหมายเหตุสนับสนุน zip?
pax
คลังเก็บด้วยเช่นกัน!
ซึ่งครอบคลุมเฉพาะการสกัด
dtrx
การที่ผมได้เริ่มต้นที่จะใช้
จุดรวมของมันคือการขจัดความซับซ้อน ดังนั้นคุณเพียงแค่ผ่านการเก็บถาวรใด ๆ ไปแล้วมันจะระบุสิ่งที่ต้องทำกับมัน ซิป, tar, GZ ... ใช้เป็นแบบเดียวกันเสมอ dtrx archive.zip
- มันถามคำถามสองสามข้อและคุณทำเสร็จแล้ว
dtrx
มีอยู่ในที่เก็บข้อมูลส่วนใหญ่ดังนั้นคุณสามารถapt
| yum
ติดตั้ง
ฉันมักจะพบว่าตัวเองพยายาม zip ไฟล์ที่ถูกแก้ไขในไดเร็กทอรีการทำงานของฉัน - เพื่อคัดลอกไฟล์ที่ถูกแก้ไขทั้งหมดไปยังไดเร็กตอรี่งาน Sandbox อื่นหรือเก็บไว้สักครู่เพราะฉันต้องการยกเลิกการเปลี่ยนแปลงบางอย่าง
ในกรณีที่ผมคัดลอกรายชื่อของไฟล์ที่ถูกปรับเปลี่ยนไปยังแฟ้มชั่วคราวและใช้กับตัวเลือกzip
-@
สมมติว่าฉันแก้ไขไฟล์ Foo.h, Bar.cc และ TestBar.cc
สมมติว่าฉันสร้างไฟล์ที่ชื่อว่า modified-files.txt ซึ่งเนื้อหาคือ:
Foo.h
Bar.cc
TestBar.cc
ฉันรันคำสั่งต่อไปนี้เพื่อบีบอัดไฟล์เหล่านั้น:
cat modified-files.txt | zip modified-files.zip -@