วิธีที่ดีกว่าในการแยกไฟล์จำนวนมากออกจากไฟล์เก็บถาวร zip ในทุบตี


1

ฉันมีไฟล์เก็บถาวร zip ที่มีไฟล์จำนวนมากและไฟล์ข้อความธรรมดาพร้อมรายการไฟล์ (~ 10,000 รายการ) ที่ฉันต้องการแยกจากไฟล์เก็บถาวรนั้นโดยใช้ bash

วิธีที่ดีที่สุดในการดำเนินการนั้นคืออะไร? วิธีที่ชัดเจนคือเรียกใช้คลายซิปสำหรับแต่ละบรรทัดของไฟล์ แต่ดูเหมือนจะช้ามาก

bash  zip 

คำตอบ:


2

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

unzip -j MyZipFile.zip <<<textfile

ใน macosc '-j' junk pathsนั้นไม่เหมือนกันในระบบของคุณ? ดังนั้นนั่นไม่ได้ผลสำหรับฉัน

ฉันไม่จำเป็นต้องเข้าถึงเครื่องที่ฉันทดสอบบน :) ฉันทำงานอยู่ตอนนี้ที่ฉันใช้ Linux ที่แตกต่างกันไม่แน่ใจว่ามีzipรสชาติที่แตกต่างกันหรือไม่ แต่คุณสามารถละเว้น -j และzip MyZipFile.zip <<<fileควรทำงานได้
PP

0

Unzip รองรับการระบุไฟล์ที่จะแตกไฟล์:

unzip archive.zip file1.txt file2.txt file3.txt ...

แต่วิธีนี้ใช้ไม่ได้กับ 10,000 รายการ คุณสามารถแยกรายการไฟล์ของคุณเป็นชิ้น ๆ 100 และเรียกใช้ unzip กับไฟล์นี่จะเป็นการใช้งานที่รวดเร็วกว่าการแตกไฟล์แต่ละไฟล์สำหรับตัวมันเอง


0

คุณสามารถใช้ xargs พร้อม-aตัวเลือกในการอ่านอาร์กิวเมนต์จากไฟล์ อาจใช้แฟล็กเพื่อ จำกัด จำนวนอาร์กิวเมนต์ให้เป็นจำนวนที่เหมาะสมเพื่อให้แน่ใจว่าเชลล์จะมีจำนวนไม่มากเกินไปที่จะจัดการหากมีข้อ จำกัด ดังกล่าว

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