So komprimieren und entpacken Sie Dateien mit tar unter Linux

Inhalt

Tar ist mehr als nur ein Archivierungsdienstprogramm: tar kommt mit einigen großartigen integrierten Funktionen, mit denen Sie Dateien komprimieren und dekomprimieren können, gleichzeitig archivieren Sie sie. Erfahren Sie alles darüber in diesem Beitrag und mehr!!

Was ist es Teer und wie installiere ich es?

Laut ihm Teer Bedrucken beider Seiten des Papiers für einen einzelnen Druckauftrag (auf die Sie durch Eingabe zugreifen können man tar einmal installiert), tar ist ein Archivdienstprogramm. Es unterstützt viele Funktionen, einschließlich On-the-Fly-Dateikomprimierung und -dekomprimierung bei der Archivierung. Beginnen wir mit der Installation Teer:

Installieren Teer auf Ihrer Debian-basierten Linux-Distribution / Geeignet (wie Ubuntu und Mint), Führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo apt install tar

Installieren Teer auf Ihrer RedHat-basierten Linux-Distribution / Yum (wie RHEL, Centos und Fedora), Führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo yum install tar

Nächste, Wir werden einige Beispieldaten erstellen:

mkdir-Test; cd test
touch a b c d e f 
echo 1 > ein; Echo 5 > e; echo '22222222222222222222' > B

Konfigurieren Sie die zu komprimierenden Beispieldaten

Hier erstellen wir einen Verzeichnistest und erstellen darin sechs leere Dateien mit dem touch Befehl. Wir fügen den Dateien auch einige Zahlen hinzu. ein, mich, und B, obwohl bemerkenswert Datei B hat sich wiederholende Daten, das lässt sich gut komprimieren.

Weitere Informationen zur Funktionsweise der Komprimierung, Sie können unsere überprüfen Wie funktioniert die Dateikomprimierung? Post.

Erstellen Sie eine unkomprimierte Datei

Einfache unkomprimierte Tar-Archiverstellung

tar -hcf all_files.tar *
ls -l | grep -v gesamt | ach '{drucken $5"tbyte für: "$9}' | sortieren -n

Hier erstellen wir eine unkomprimierte Datei mit dem tar -hcf all_files.tar * Befehl. Schauen wir uns die Alternativen an, die in diesem Befehl verwendet werden.

Zuerst, verfügen über -h dass, obwohl es unter diesen besonderen Umständen nicht notwendig ist, Ich empfehle, immer in Ihre aufzunehmen tar Befehle. Diese Option bedeutet Dereferenzierung, wodurch die Referenz entfernt wird (oder geht weiter) symbolische Links, Archivieren und Ausgeben der Dateien, auf die sie verweisen.

Als nächstes haben wir die -c und -f Optionen. Bitte beachten Sie, dass sie nur in Verbindung mit der - An -h, Mit anderen Worten, anstatt einen anderen anzugeben -, wir markieren sie einfach in den anderen Kurzformoptionen. schnell und einfach.

das -c Optionsunterstützung für eine neue Datei erstellen. Beachten Sie, dass, standardmäßig, Verzeichnisse werden rekursiv archiviert, es sei denn, die Option –keine Rekursion wird ebenfalls verwendet. das -f Die Option ermöglicht es uns, den Namen der Datei anzugeben. Weil, muss der letzte in unserer Kette von Alternativen sein (da brauchst du eine option) damit wir den Archivdateinamen direkt dahinter hinzufügen können. Verwenden von tar -fch test.tar * wird nicht funktionieren:

Abkürzungsoptionen, die eine Option erfordern, können nicht vorangestellt werden

Nachdem der Teer generiert wurde, Wir verwenden ein ls Ausgabe, die uns die Anzahl der Bytes pro Datei deutlich zeigt. Wie du siehst, Die tar-Datei ist viel größer als alle unsere Archive zusammen. Dateien werden gerade archiviert und etwas Overhead für Teer wird hinzugefügt.

Als interessante Randnotiz, Wir können auch sehen, mit welchen Dateitypen wir arbeiten, indem wir einfach die verwenden file Befehl an der Eingabeaufforderung:

file c
file b
file all_files.tar

Verwenden von Datei zum Anzeigen des Dateityps

Erstellen Sie eine unkomprimierte Datei

Ein sehr verbreiteter Komprimierungsalgorithmus ist GZIP. Lassen Sie uns die Option für dasselbe hinzufügen (-z) zu unserer Kette von Kurzbefehlszeilenalternativen und sehen Sie, wie sich dies auf die Dateigröße auswirkt:

tar -zhcf all_files.tar.gz [a-f]
ls -l | grep -v gesamt | ach '{drucken $5"tbyte für: "$9}' | sortieren -n

Betrachten der Größe einer komprimierten im Vergleich zu einer unkomprimierten Datei

Dieses Mal geben wir einen regulären Ausdruck an, um nur die benannten Dateien zu verwenden ein zum F, verhindern die tar Befehl zum Einschließen der all_files.tar Datei im neuen all_files.tar.gz Verfahren!

Sehen Sie, wie Regex tatsächlich verwendet wird? und Text mit Regex mit sed ändern, wenn Sie mehr über Regex erfahren möchten.

Wir schließen auch die -z Option, die die GZIP-Komprimierung verwendet, um das Ergebnis zu komprimieren .tar Datei, nachdem der Datendump abgeschlossen ist. Es ist großartig zu sehen, dass wir am Ende eine Datei mit . haben 186 Bytes, was sagt uns das?, unter diesen Umständen, das tar Die Überschrift / Overhead von ca 10 KB lässt sich sehr gut komprimieren.

Die Gesamtgröße der Datei beträgt 7,44 mal größer als die Gesamtdateigröße, aber es ist wenig wichtig, da dieses fiktive Beispiel nicht repräsentativ für die Komprimierung großer Dateien ist, bei der Sie fast immer eher Gewinne als Verluste sehen, es sei denn, die Daten sind vorkomprimiert oder haben ein solches Format, dass sie mit einer Reihe von Algorithmen nicht leicht komprimiert werden können. Sogar so, ein Algorithmus (wie GZIP) vielleicht besser als andere (als Beispiel BZIP2), und umgekehrt, für verschiedene Datensätze.

Holen Sie sich mehr Bytes durch High-Level-Komprimierung

Können wir die Datei noch kleiner machen?? Und. Wir können die maximale Komprimierungsoption von GZIP mithilfe der -I Option a tar wodurch wir ein zu verwendendes Komprimierungsprogramm angeben können (mit Dank an Paketüberfluss Benutzerideen man42):

tar -I 'gzip -9' -hcf all_files.tar.gz [a-f]
ls -l | grep -v gesamt | ach '{drucken $5"tbyte für: "$9}' | sortieren -n

Verwenden der Option -I für tar, um einen Komprimierungsplan anzugeben

Hier spezifizieren wir -I 'gzip -9' als zu verwendendes Komprimierungsprogramm, und wir lassen die -z Möglichkeit (da wir jetzt ein bestimmtes benutzerdefiniertes Programm angeben, das verwendet wird, anstatt die integrierte GZIP-Konfiguration von tar zu verwenden). Das Ergebnis ist, dass wir 12 Byte weniger durch besseren Komprimierungsversuch (aber generell langsamer) (auf dem Level -9) von GZIP.

Allgemein gesagt, desto schneller die Kompression (weniger Kompressionsversuche, Mit anderen Worten, -1), größere Dateigröße. UND, je langsamer die Kompression (höhere Kompressionsversuche, Mit anderen Worten, -9), kleiner ist die Datei. Sie können Ihre eigenen Vorlieben bestimmen, indem Sie die Komprimierungsstufe der -1 (Schnell) ein -9 (langsam)

Andere Komprimierungsprogramme

Es gibt zwei weitere gängige Komprimierungsalgorithmen, die untersucht und getestet werden können. (verschiedene Algorithmusoptionen liefern auch unterschiedliche Größenergebnisse und können zusätzliche Komprimierungsoptionen haben), und das ist bzip2, die durch Angabe der verwendet werden kann -j Option a tar, und XZ die durch Angabe der verwendet werden kann -J Möglichkeit.

Alternative, du kannst den ... benutzen -I Befehl zum Bestimmen der maximalen Komprimierungsalternativen für bzip2 (-9):

Beispiel für ein bzip-Komprimierungsprogramm -9

UND -9e von xz:

Beispiel eines Kompressionsprogramms xz -9e

Wie du siehst, die Ergebnisse sind unter diesen Umständen weniger gut als wenn der etwas Standard-GZIP-Algorithmus verwendet wird. Sogar so, das bzip2 und xz Algorithmen können Verbesserungen mit anderen Datensätzen zeigen.

Entpacken Sie eine Datei

Das Entpacken einer Datei ist sehr einfach, was auch immer die ursprüngliche Methode ist, es zu komprimieren, und solange der Komprimierungsalgorithmus auf Ihrem Computer vorhanden ist. Als Beispiel, wenn der ursprüngliche Komprimierungsalgorithmus bzip2 war (gekennzeichnet durch a .bz2 Erweiterung des tar-Dateinamens), dann wirst du es tun wollen sudo apt install bzip2sudo yum install bzip2) auf Ihrem Zielrechner, der die Datei entpacken soll.

rm a b c d e f
tar -xf all_files.tar.gz
ls

Entpacken Sie eine komprimierte tar-Datei (oder unkomprimiert)

Wir spezifizieren einfach -x zum erweitern oder entpacken Sie unsere all_files.tar.gz und geben Sie wieder an, was der Name der Datei ist -f Kurzform wie zuvor.

Durch das Komprimieren von Dateien können Sie viel Speicherplatz auf Ihren Speichergeräten sparen und wissen, wie Sie sie verwenden. tar in Kombination mit verfügbaren Komprimierungsalternativen wird Ihnen dabei helfen. Sobald die Datei erneut extrahiert werden muss, Dies ist ganz einfach, solange auf dem Computer, der zum Entpacken oder Extrahieren der Daten aus Ihrem Archiv verwendet wird, die richtige Entpacksoftware verfügbar ist. Genießen!

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.