Wie erstelle ich eine tar.7z-Datei über die Befehlszeile?

21

Ich würde gerne meine Hausaufgaben vom letzten Jahr zusammenfassen. Wie tariere und zip den gesamten Ordner von der Kommandozeile Ubuntu (ich habe keine GUI).

alphanumerical74
quelle

Antworten:

25

Verwenden Sie den folgenden Einzeiler:

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

Lesen man tar. Es bietet:

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

Oder, wenn keine davon für Sie richtig ist und Sie ein Komprimierungsprogramm haben, das liest stdin, könnten Sie:

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

Beachten Sie, dass ich die Ausgabe an einem anderen Ort schreibe als $HOME(das Sichern in ein Verzeichnis, das Sie sichern, führt zu einem uneingeschränkten Wachstum der Dateien).

Oder du könntest lesen man 7z- es sieht so aus , als könntest du es tun

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

Es ist keine gute Idee, direkt mit 7z zu komprimieren, insbesondere auf Unix- / Linux-Systemen: 7z bewahrt keine Berechtigungen und / oder Benutzer- / Gruppeninformationen . Also erst Teer, dann Komprimieren.

Wie auf der 7zip-Wiki-Seite unter http://en.wikipedia.org/wiki/7z#Limitations berichtet :

Einschränkungen

Das 7z-Format speichert keine Dateisystemberechtigungen (wie z. B. UNIX-Besitzer- / Gruppenberechtigungen oder NTFS-ACLs) und kann daher für Sicherungs- / Archivierungszwecke ungeeignet sein. Eine Problemumgehung für UNIX-ähnliche Systeme besteht darin, Daten vor der Komprimierung mit 7z in einen Teerbitstream zu konvertieren.

Giuseppe Curto
quelle
5

Ich würde vorschlagen, dass Sie verwenden:

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

für dramatische Beschleunigung.

Es hat den Vorteil, dass lzma2 ( -m0=lzma2) (das die maximal verfügbaren Kerne auf Ihrem System nutzt) und "Fast Compression" ( -mx=3das ist im Grunde genommen schnell und gut genug) verwendet werden. Beachten Sie, dass LZMA2 nicht nur alle Kerne bei der Komprimierung verwendet, sondern auch bei Dekompression.

vordhosbn
quelle
1
Schließlich habe ich mit Ihrer Antwort gefunden, wonach ich gesucht habe: die Fähigkeit, alle Prozessoren für die Aufgabe zu verwenden.
Lonnie Best
0

Du solltest benutzen tar -Jchf <Filename>.tar.xz <Files to compress>

Das -Jverwendet den XZ-Komprimierungsalgorithmus, der mit 7zip identisch ist

-c-hErstellt eine neue Datei , behält Simlinks bei und -flegt den Dateinamen fest

Christian
quelle