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).

Antworten:


25

Verwenden Sie den folgenden Einzeiler:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

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 

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.


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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.