ฉันต้องการทำการบ้านมาตั้งแต่ปีที่แล้ว ฉันจะ tar และ zip โฟลเดอร์ทั้งหมดจากบรรทัดคำสั่ง Ubuntu ได้อย่างไร (ฉันไม่มี GUI)
ฉันต้องการทำการบ้านมาตั้งแต่ปีที่แล้ว ฉันจะ tar และ zip โฟลเดอร์ทั้งหมดจากบรรทัดคำสั่ง Ubuntu ได้อย่างไร (ฉันไม่มี GUI)
คำตอบ:
ใช้หนึ่งซับต่อไปนี้:
tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
man tar
อ่าน มันมี:
-a, --auto-compress
use archive suffix to determine the compression program
-j, --bzip2
--lzip
--lzma
--lzop
-z, --gzip, --gunzip --ungzip
-Z, --compress, --uncompress
หรือถ้าไม่มีสิ่งใดที่เหมาะกับคุณและคุณมีโปรแกรมบีบอัดที่อ่านstdin
ได้คุณสามารถ:
tar cf- $HOME | my_compression_program >/tmp/compressed.output
โปรดทราบว่าฉันกำลังเขียนผลลัพธ์ที่อื่นนอกเหนือจาก$HOME
(สำรองข้อมูลไปยังไดเรกทอรีที่คุณกำลังสำรองข้อมูลนำไปสู่การเติบโตของไฟล์ที่ไม่มีข้อ จำกัด )
หรือคุณสามารถอ่านได้man 7z
- ดูเหมือนว่าคุณจะทำได้
dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir
มันเป็นไม่ได้ความคิดที่ดีอัดโดยตรงกับ 7z spcially บน Unix / Linux ระบบ: 7z ไม่รักษาสิทธิ์และหรือผู้ใช้ข้อมูล / กลุ่ม ดังนั้น: tar แรกแล้วบีบอัด
ตามที่รายงานในหน้า 7zip wiki ที่http://en.wikipedia.org/wiki/7z#Limitations :
ข้อ จำกัด
รูปแบบ 7z ไม่ได้จัดเก็บสิทธิ์ระบบไฟล์ (เช่นสิทธิ์ของเจ้าของ / กลุ่ม UNIX หรือ NTFS ACLs) ดังนั้นจึงอาจไม่เหมาะสมสำหรับการสำรองข้อมูล / เก็บถาวร วิธีแก้ปัญหาบนระบบที่คล้าย UNIX สำหรับการนี้คือการแปลงข้อมูลไปเป็น tar bitstream ก่อนทำการบีบอัดด้วย 7z
ฉันขอแนะนำให้คุณใช้:
tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z
สำหรับการเพิ่มความเร็วอย่างรวดเร็ว
มันมีข้อได้เปรียบของการใช้ lzma2 ( -m0=lzma2
) (ซึ่งใช้ประโยชน์สูงสุดจากคอร์ที่มีอยู่ในระบบของคุณและการตั้งค่าล่วงหน้า "Fast compression" ( -mx=3
) ซึ่งโดยพื้นฐานแล้วรวดเร็วและดีพอโปรดทราบว่า LZMA2 ไม่เพียงใช้ประโยชน์จากคอร์ทั้งหมดในการบีบอัด การบีบอัด
คุณควรใช้ tar -Jchf <Filename>.tar.xz <Files to compress>
-J
ใช้วิธีการบีบอัด XZ เช่นเดียวกับ 7zip
-c
สร้างไฟล์ใหม่
-h
เก็บรักษาลิงก์ที่
-f
ตั้งชื่อไฟล์
man 7z
.