Bagaimana cara membuat file tar.7z dari baris perintah?

21

Saya ingin memperbaiki pekerjaan rumah saya dari tahun lalu. Bagaimana cara tar dan zip seluruh folder dari command line Ubuntu (saya tidak punya GUI).

alfanumerik74
sumber

Jawaban:

25

Gunakan one-liner berikut:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
ortang
sumber
Potensi sumber: man 7z.
Wilf
9

Baca man tar. Menawarkan:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

Atau, jika tidak ada yang cocok untuk Anda, dan Anda memiliki program kompresi yang berbunyi stdin, Anda dapat:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

Perhatikan bahwa saya sedang menulis output di tempat lain selain $HOME(mencadangkan ke direktori yang Anda cadangkan mengarah pada pertumbuhan file yang tidak dibatasi).

Atau, Anda bisa membaca man 7z- sepertinya Anda bisa melakukannya

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 
waltinator
sumber
7

Ini bukan ide yang baik untuk mengompresi secara langsung dengan 7z spcially pada sistem unix / linux: 7z tidak mempertahankan izin dan atau info pengguna / grup . Jadi: tar pertama, lalu kompres.

Seperti yang dilaporkan pada halaman wiki 7zip di http://en.wikipedia.org/wiki/7z#Limitations :

Keterbatasan

Format 7z tidak menyimpan izin sistem file (seperti izin pemilik / grup UNIX atau ACFS NTFS), dan karenanya tidak sesuai untuk keperluan pencadangan / arsip. Solusi pada sistem seperti UNIX untuk ini adalah untuk mengkonversi data ke bitstream tar sebelum dikompresi dengan 7z.

Giuseppe Curto
sumber
5

Saya menyarankan agar Anda menggunakan:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

untuk peningkatan percepatan dramatis.

Ini memiliki keuntungan menggunakan lzma2 ( -m0=lzma2) (yang menggunakan maks core yang tersedia pada sistem Anda dan preset "kompresi cepat" ( -mx=3), yang pada dasarnya cepat dan cukup baik. Perhatikan bahwa LZMA2 tidak hanya memanfaatkan semua core pada kompresi, tetapi juga pada dekompresi.

vordhosbn
sumber
1
Akhirnya, dengan jawaban Anda, saya telah menemukan apa yang saya cari: kemampuan untuk menggunakan semua prosesor pada tugas.
Lonnie Best
0

Kamu harus menggunakan tar -Jchf <Filename>.tar.xz <Files to compress>

The -Jmenggunakan algoritma kompresi XZ, sama seperti 7zip

-cmembuat file baru -hmempertahankan simlinks -fset nama file

Kristen
sumber