Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

สร้างและแก้ไข Zip Files ใน Linux ด้วย Terminal

ในบทความก่อนหน้า เราระบุรายละเอียดวิธีใช้คำสั่ง tar เพื่อสร้าง Archives แม้ tar จะเป็น Compression Scheme ที่พบบ่อยสำหรับ Linux มันไม่ได้ Nearly As Popular สำหรับ Windows และ macOS Users ซึ่งจะพบ Archives ส่วนใหญ่ของพวกเขาถูกสร้างโดยใช้ Zip Format

มัน Easy ที่จะใช้ Zip (เพื่อสร้าง) และ Unzip (เพื่อ Expand) Archives ใน Linux จริงๆ แล้ว GUI Archive Management Programs ส่วนใหญ่ (อย่าง Ark, File Roller และ Xarchiver) จะทำหน้าที่เป็น Frontend ให้ Command Line Archiving Program เกือบทุกตัวที่คุณมีบนคอมพิวเตอร์ และ Zip ไม่ใช่ Exception 當然 (Of Course) เรายังสามารถใช้ Zip จาก Terminal ได้ นี่คือวิธี

ขั้นตอนการสร้างและจัดการ Zip Files

ขั้นแรก ตามที่คุณคาดเดา คือการเปิด Terminal

ต่อไป พิมพ์ "sudo apt-get install zip unzip" (โดยไม่มี Quotes) เพื่อให้แน่ใจว่าเรามี Zip และ Unzip ติดตั้งแล้ว

Note: หากโปรแกรมทั้งสองติดตั้งแล้ว คุณจะได้รับ Message บอกว่ากรณีนี้เป็นเช่นนั้น ตามที่แสดงด้านบน

เมื่อติดตั้งแล้ว เราสามารถใช้ Zip เพื่อสร้าง Archives (หรือ Modify Existing Ones) และ Unzip เพื่อ Expand พวกเขากลับเป็น Originals สำหรับบทความนี้ เราจะสร้าง Folder ใหม่บน Desktop เรียกว่า Stuff ใน Terminal เราสามารถทำได้ด้วยคำสั่งเดียว — mkdir /home/username/Desktop/Stuff (แน่นอน คุณจะ Replace "username" ด้วย Username ของคุณเอง ตามที่แสดงด้านล่าง และหากคุณมี Stuff Folder บน Desktop แล้ว คุณจะต้องการเปลี่ยนชื่อ)

ตอนนี้ที่เรามี Stuff Folder เราจะใช้คำสั่ง 'cd' เพื่อทำให้ Stuff Folder เป็น Current Working Directory ของเรา

cd /home/username/Desktop/Stuff

ตอนนี้ พิมพ์ touch doc1.txt doc2.txt doc3.txt && mkdir Files ลงใน Terminal ของคุณ ซึ่งจะสร้าง Folder ชื่อ Files รวมถึง Documents สามตัว — doc1.txt, doc2.txt และ doc3.txt — ภายใน Stuff Folder

อีกคำสั่งหนึ่ง เพื่อ 'cd' เข้าไปใน Files Folder ที่เพิ่งสร้าง (cd Files) เพราะเราจะต้องการ Documents อื่นๆ ภายในนั้น

cd Files

สุดท้าย พิมพ์ touch doc4.txt doc5.txt doc6.txt เพื่อสร้าง Documents ใหม่สามตัว

ตอนนี้ พิมพ์ cd ../.. เพื่อเปลี่ยน Desktop กลับเป็น Working Directory

Next-to-last Step ก่อนสร้าง Zip File คือการสร้าง "Extra" Documents สองตัวบน Desktop ด้วยชื่อเดียวกับไฟล์ที่เราสร้างไว้ ดังนั้น พิมพ์ touch doc2.txt doc3.txt เพื่อสร้างพวกเขา

สุดท้าย เปิด "Extra" Text Files ทั้งสองและเพิ่ม Text ใส่เข้าไป ไม่จำเป็นต้อง Meaningful (หรือยาว) แค่เพื่อให้เราเห็นว่า Documents นี้ Different จากไฟล์เดิมที่สร้างไว้ภายใน Stuff และ Files Folders

เมื่อทำเสร็จแล้ว เราสามารถเริ่มสร้าง Zip Files ได้ วิธีที่ Simple ที่สุดในการใช้ Zip คือการบอกมันชื่อ Zip Archive ที่คุณต้องการสร้าง แล้วระบุชื่อไฟล์แต่ละไฟล์ที่ควรจะเข้าไปในมันอย่างชัดเจน ดังนั้น สมมติ Working Directory ของเราคือ Desktop เราจะพิมพ์ zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txt เพื่อสร้าง Archive ชื่อ test.zip (เราไม่ต้องใช้ Extension ".zip" ในคำสั่ง เพราะมันจะถูกเพิ่มโดยอัตโนมัติ) ซึ่งจะประกอบด้วย doc1.txt, doc2.txt และ doc3.txt ตามที่พบใน Stuff Folder

คุณจะเห็น Output นิดหน่อย ซึ่งบอกเราว่า Documents สามตัว (doc1.txt, doc2.txt และ doc3.txt) ถูกเพิ่มเข้า Archive

เราสามารถ Test นี้ได้โดย Double Click Archive ซึ่งควรนั่งอยู่บน Desktop ของเรา การทำเช่นนั้นควรจะเปิดมันใน Standard Archive Program (Ark ใน KDE, File Roller ใน GNOME และ Xarchiver ใน Xfce)

ตอนนั้น Files Folder ครับ? สมมติเราต้องการมัน เพิ่ม Documents ภายในมันเข้า Archive ของเราด้วย เราสามารถใช้คำสั่งเดียวกับด้านบน แต่เพิ่ม Stuff/Files/* ไปที่ท้ายคำสั่ง

Asterisk หมายถึง Include ทุกอย่างภายใน Folder ดังนั้นหากมี Folder อีกตัวภายใน Files Folder มันจะถูกเพิ่มเช่นกัน อย่างไรก็ตาม หาก Folder นั้นมี Items ภายใน มันจะไม่ถูก Include เพื่อทำเช่นนั้น เราจะต้องเพิ่ม -r (ซึ่ง Stand For Recursive หรือ Recursively)

ควรทราบว่าคำสั่งสองคำสั่งด้านบนไม่ได้ Designed เพื่อ "Add" Files เข้า Zip Archive พวกเขา Designed เพื่อ Create One อย่างไรก็ตาม เนื่องจาก Archive มีอยู่แล้ว คำสั่งก็แค่ Add New Files ใดๆ เข้า Existing Archive หากเราต้องการสร้าง Archive นี้ All At Once (แทนที่จะเป็นสามขั้นตอนที่เราทำเพื่อ Gradually Add Files เข้าไปเพื่อ Educational Purposes) เราสามารถพิมพ์ zip -r test Stuff/* และจะสร้าง Archive เดียวกันได้

คุณจะสังเกตจาก Command และ Output ว่า Files สามตัวภายใน Stuff Folder ถูก Include รวมถึง Documents สามตัวภายใน Files Folder ดังนั้นทุกอย่างสำเร็จในคำสั่ง Nice, Simple หนึ่งคำสั่ง

ตอนนั้น "Extra" Documents สองตัวที่เราสร้างบน Desktop ครับ? วิธีที่ Zip ทำงานคือ หากคุณพยายาม Add File เข้า Archive ที่มีอยู่ใน Archive แล้ว New Files จะ Overwrite Old Ones ดังนั้น เนื่องจาก Documents ที่เราสร้างบน Desktop (doc2.txt และ doc3.txt) มี Content (เราเพิ่ม "hello world!" ให้ doc2.txt และ "yay" ให้ doc3.txt) เราควรจะสามารถ Add Documents นั้นได้ และจากนั้น Test นี้ได้ ขั้นแรก เราจะ Drag "Extra" Documents ทั้งสองเข้า Stuff Folder

คุณอาจถูกถามว่าคุณต้องการให้ New Documents Overwrite Existing Ones หรือไม่ (นี่คือใน Folder จำได้ ไม่ใช่ Zip Archive) ให้มันเกิดขึ้น

ตอนนี้สิ่งนี้ Done แล้ว เรามา Add พวกเขาเข้า Archive โดยพิมพ์ zip test Stuff/doc2.txt Stuff/doc3.txt

คุณจะสังเกตคำสั่งด้านบนตอนนี้ Shows Files Being Updated แทนที่จะเป็น Added หากเราตรวจสอบ Archive ตอนนี้ เราจะสังเกตว่า Files ดูเหมือน Same แตเมื่อเปิด doc2.txt และ doc3.txt คุณจะเห็นว่าตอนนี้พวกเขามี Content แทนที่จะเป็น Blank เหมือนไฟล์ต้นฉบับของเรา

บางครั้งใน Linux คุณจะเห็นว่าบาง Files ถูก Hidden โดยการเพิ่ม Period (".") ไปที่ต้นชื่อไฟล์ นี่พบได้โดยเฉพาะสำหรับ Configuration Files ซึ่งต้อง Exist แต่บ่อยครั้งไม่ Visible (ซึ่งช่วยลด Clutter และทำให้ Configuration File น่าจะถูกลบโดย Accident น้อยลง) เราสามารถ Add พวกเขาเข้า Zip File ได้ง่ายมาก ขั้นแรก สมมติเราต้องการสร้าง Zip File ชื่อ Backup จากทุก File ใน Directory เราสามารถทำได้โดยพิมพ์ zip backup * ลงใน Terminal

นี่จะ Add ทุก Files และ Folders แม้ Items ใน那些 (those) Folders จะไม่ถูก Include เพื่อ Add พวกเขา เราจะเพิ่ม -r อีกครั้ง ดังนั้น zip -r backup * จะเป็นคำสั่ง

ตอนนี้เรา Almost There เพื่อ Recursively Add Folders, Files และ Hidden Files คำสั่งจริงๆ 非常 Simple: zip -r backup .

ตอนนี้ Unzipping คือ Quite Easy ก่อนที่เราจะทำอะไรก็ตาม ไปข้างหน้าและ Delete Documents บน Desktop (doc2.txt และ doc3.txt) รวมถึง Stuff Folder เมื่อพวกเขาหายไปแล้ว การพิมพ์ unzip test.zip จะ Expand Contents ของ Original Zipped Archive ของเราเข้า Current Directory

Note: หากเราไม่ได้ Delete Documents เราจะพยายาม Unzip Contents ของ Zip File เข้า Existing File ดังนั้นจะถูกถามว่าต้องการ Replace ทุก Document หรือไม่

And That's It! Zipping และ Unzipping เป็น Pretty Common Task และแม้จะมี GUI Options ให้ แต่ด้วย Practice คุณจะพบว่าการ Perform Those Same Tasks จาก Terminal ไม่ได้ Very Difficult ไปอย่างไร