วิธีจัดเก็บโฟลเดอร์ขนาดใหญ่ในไฟล์เดียวโดยไม่มีการบีบอัด


11

ฉันต้องการใช้โฟลเดอร์ 78gb และเก็บไว้ในไฟล์เดียว (สำหรับอัพโหลดไปยังบริการคลาวด์) ราวกับว่าฉันกำลังบีบอัดไว้ในไฟล์เก็บถาวร แต่ฉันไม่ต้องการการบีบอัดใด ๆ (ฉันไม่มี CPU มาก มีเวลา) มีอยู่หรือเปล่าที่ฉันสามารถทำสิ่งนี้ให้สำเร็จได้บางทีคำสั่งเทอร์มินัลที่ฉันไม่รู้


1
มีtarคำสั่งใน linux tar -cf long.file.tar folder
Costas

5
FYI: มีโปรแกรมบีบอัดที่รวดเร็วบางโปรแกรมจะเร็วกว่าความเร็วในการเขียนดิสก์ของคุณและหลายโปรแกรมที่จะเร็วกว่าเครือข่ายของคุณ การใช้หนึ่งในนั้นจะเร่งให้เร็วขึ้นหากข้อมูลสามารถบีบอัดได้เลย เช่นlzopถูกออกแบบมาเพื่อความเร็ว
Derobert

คำตอบ:


20

การใช้tar: tar -cf my_big_folder.tar /my/big/folder

กู้คืนไฟล์เก็บถาวรด้วย tar -xf my_big_folder.tar -C /

-Cจะเปลี่ยนเป็นไดเรกทอรีรูทเพื่อกู้คืนไฟล์เก็บถาวรของคุณเนื่องจากไฟล์เก็บถาวรที่สร้างขึ้นด้านบนมีพา ธ สัมบูรณ์

แก้ไข : เนื่องจากขนาดค่อนข้างใหญ่ของไฟล์เก็บถาวรจึงเป็นการดีที่สุดที่จะส่ง [โดยตรง] ไปยังตำแหน่งสุดท้ายโดยใช้ SSH หรือจุดเชื่อมต่อของทรัพยากร / โฟลเดอร์คลาวด์ ตัวอย่างเช่นโคลจอห์นสันแนะนำ :

tar -cf /network/mount/point/my_big_folder.tar /my/big/folder

หรือ

tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"

แก้ไข : ตามที่Blacklight Shining แนะนำเช่นกันหากคุณต้องการหลีกเลี่ยงเส้นทางที่สมบูรณ์คุณสามารถเปลี่ยนเป็นพาเรนต์ของโฟลเดอร์ใหญ่และtarจากที่นั่น:

tar -cf /network/mount/point/my_big_folder.tar \
    -C /my/big/folder/location the_big_folder

หรือ

tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"

การสะท้อนกลับส่วนบุคคล

ไม่ว่าจะรวมเส้นทางสัมพัทธ์หรือเส้นทางสัมบูรณ์เป็นเรื่องของการตั้งค่าส่วนตัว

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

ในที่สุด - การไปที่นี่อย่างกระทันหัน - tarสมาชิกที่เก็บถาวรจะสัมพันธ์กันเสมอเนื่องจากก)พวกเขาอาจได้รับการกู้คืนในไดเรกทอรีใด ๆ และb) tarลบผู้นำ/เมื่อสร้างที่เก็บถาวร โดยส่วนตัวแล้วฉันมักจะใช้-Cเมื่อเปิดไฟล์เก็บถาวร


ในการชี้แจงการแก้ไขให้ทำtar -cf /network/mount/point/folder.tar /folderแทนการบอกกล่าวกับคอมพิวเตอร์ในพื้นที่แล้วอัปโหลดถ้าคุณทำได้
Cole Johnson

แน่นอน ยิ่งฉันอ่านแก้ไขฉันยิ่งคิดว่ามันดูสับสน ขอบคุณสำหรับความเข้าใจของคุณ

1
เป็นมูลค่า noting วิธีที่จะหลีกเลี่ยงการtar -cf $archive.tar -C $source_dir .ทำให้การจัดเก็บที่มีเส้นทางที่แน่นอน: หากเครื่องปลายทางไม่มีไดเรกทอรีที่มีเส้นทางเดียวกับไดเรกทอรีต้นทางคุณจะต้องทำเช่นนั้น เพียงตรวจสอบให้แน่ใจว่าได้-Cเข้าสู่ไดเรกทอรีใหม่เมื่อคุณแยก ( mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir); มิฉะนั้นเนื้อหาที่เก็บถาวรจะถูกทิ้งลงในไดเรกทอรีใดก็ตามที่คุณเกิดขึ้น
Blacklight Shining

2

ทางเลือก: cpio

(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)

แกะออกจากไดเรกทอรีปัจจุบัน:

cpio -id < myfolder.cpio

คำเตือน:

  • หากใช้find /my/big/folderแทนcdการเก็บถาวรจะมีเส้นทางแบบเต็มและการแยกจะพยายามติดตามพวกเขา
  • ไฟล์ขนาดใหญ่ (> 2GB) อาจมีปัญหา

Cpio มีแนวโน้มที่จะช้ากว่า tar มาก แต่ถ้าใช้กับขนาดเริ่มต้นบล็อก 512 ( fixunix.com/sco/89900-cpio-performance-vs-tar-bit-mystery.html )
PSkocik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.