GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So archivieren und komprimieren Sie Dateien unter Linux

Als Systemadministrator haben Sie möglicherweise einige Archive heruntergeladen, die Sie extrahieren müssen um ihre Dateien offenzulegen.

Möglicherweise sichern Sie auch eine gesamte Datenbank besteht aus einer Vielzahl kleiner Dateien, die Sie in einem einzigen Archiv zusammenfassen möchten.

Archivierung und Dateien komprimieren sind übliche Operationen in der Unix-Welt, die regelmäßig von Systemadministratoren durchgeführt werden.

Glücklicherweise stellt Linux eine Reihe verschiedener Befehle bereit, um Dateien aus einem Archiv zu archivieren, zu komprimieren, zu dekomprimieren und zu extrahieren.

In diesem Tutorial erfahren Sie mehr über den tar-Befehl sowie die verschiedenen Komprimierungsmethoden, die verwendet werden können, um unter Linux Speicherplatz zu sparen.

Bereit?

Archiviere Dateien unter Linux mit tar

Teer ist ein sehr beliebter Befehl unter Systemadministratoren.

Wird manchmal als Tarball bezeichnet , tar wurde früher verwendet, um Daten auf Geräte zu schreiben, die zu dieser Zeit kein Dateisystem hatten.

Als Konsequenz wurde der tar-Befehl 1979 eingeführt um die „tp ” Programm, das damals verwendet wurde.

Heutzutage ist der tar-Befehl wird häufig verwendet, um Dateien zu archivieren (dh Dateien in einem einzigen Archiv zusammenzufassen).

Um Dateien unter Linux mit tar zu archivieren, führen Sie „tar aus “ mit dem „cvf ” Optionen.

$ tar -cvf archive.tar file1 file2 directory1 directory2

file1/
file2/
directory1/
directory2/

In diesem Fall haben wir drei verschiedene Optionen verwendet:

  • -c :für Archiv erstellen, eine ziemlich selbsterklärende Option, wenn Sie ein neues Archiv aus den ausgewählten Dateien erstellen möchten;
  • -v :für verbose, das ist der Grund, warum der Befehl die dem Archiv hinzugefügten Dateien anzeigt, wenn er ausgeführt wird;
  • -f :für Datei wird diese Option verwendet, um den Dateinamen des Archivs anzugeben, das wir erstellen möchten (in diesem Fall archive.tar)

Diese Optionen sind wahrscheinlich die wichtigsten Optionen zum Archivieren von Dateien unter Linux.

Beim Ausführen des tar-Befehls mit dem „-f“-Flag wurde ein neues Archiv in Ihrem aktuellen Arbeitsverzeichnis erstellt.

$ ls -l
total 20
-rw-rw-r-- 1 schkn schkn 10240 Nov  9 10:41 archive.tar
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Wie Sie sehen können, ist die Größe des Archivs größer als die Summe der darin enthaltenen Dateien.

Warum?

Beim Erstellen eines tar-Archivs werden Dateien und Verzeichnisse nicht einfach in eine große Kiste gelegt:ein Archiv ist auch eine spezielle Datei, die aus speziellen Datei-Headern besteht, die viel Platz beanspruchen können.

Folglich ist Ihr Archiv viel größer als die Summe der darin enthaltenen Dateien.

Dies ist eine sehr wichtige Tatsache, da wir verstehen können, dass das Archivieren von Dateien nicht bedeutet, dass Ihre Dateien darin komprimiert werden.

Um Dateien beim Archivieren zu komprimieren, müssen Sie dem tar-Befehl andere Optionen zur Verfügung stellen.

Die Dateikomprimierung wird in den nächsten Kapiteln erklärt.

Extrahieren Sie Dateien mit tar unter Linux

Nachdem Sie nun eine Archivdatei erstellt haben, möchten Sie vielleicht die Dateien aus Ihrem Archiv extrahieren.

Um Dateien mit dem tar-Befehl zu extrahieren, fügen Sie die Datei „-x ”-Option anstelle der anfänglichen “-c”-Option.

$ tar -xvf archive.tar

file1
file2
directory1/
directory2/

Beachten Sie, dass das Extrahieren Ihrer Dateien nicht bedeutet, dass das Archiv aus Ihrem aktuellen Arbeitsverzeichnis gelöscht wird.

$ ls -l

total 28
-rw-rw-r-- 1 schkn schkn 10240 Nov  9 12:01 archive.tar
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 12:00 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Beim Extrahieren von Dateien unter Linux gibt es einen kleinen Fallstrick, den Sie beachten müssen.

Wenn eine Datei im aktuellen Arbeitsverzeichnis den gleichen Namen wie eine Datei im Archiv hat, wird der Inhalt der Datei im Arbeitsverzeichnis durch den aus dem Archiv ersetzt.

Fügen Sie zur Veranschaulichung etwas Inhalt zu einer Ihrer Dateien hinzu, extrahieren Sie Ihre Dateien und überprüfen Sie den Inhalt Ihrer Datei erneut.

$ echo "Added some content to the file" > file1

$ tar -xvf archive.tar

$ cat file1
<empty>

Lokale Dateien mit Archivdateien vergleichen

Um zu verhindern, dass Daten während des Vorgangs gelöscht werden, kann der tar-Befehl Dateien vergleichen befindet sich in Ihrem aktuellen Arbeitsverzeichnis mit Dateien in Ihrem Archiv.

Zurück zu dem Beispiel, das wir zuvor besprochen haben, fügen wir der Datei „file1“ wieder etwas Inhalt hinzu.

$ echo "Added some content to the file" > file1

Um Dateien mit tar zu vergleichen, verwenden Sie die Option „-d“.

$ tar -dvf archive.tar

file1
file1: Mod time differs
file1: Size differs
file2
directory1/
directory2/

Wie Sie sehen, vergleicht tar Zeitstempel und genauer gesagt das letzte Änderungsdatum der Datei.

Wenn das Änderungsdatum der lokalen Datei neuer ist als das der Archivdatei, zeigt der tar-Befehl einen Hinweis an, dass die Änderungszeit abweicht.

Ebenso kann tar Dateigrößen untersuchen und Größenunterschiede zwischen Ihren Dateien hervorheben.

Um das Löschen Ihrer Dateien zu vermeiden, können Sie den Stern verwenden Befehl, der eine großartige Alternative zum bestehenden tar-Befehl ist.

Überschreiben von Dateien mit Stern verhindern

Standardmäßig ist das Star-Dienstprogramm möglicherweise nicht auf Ihrem System installiert.

Um das Star-Dienstprogramm zu installieren, führen Sie das YUM-Dienstprogramm

aus
$ sudo yum install star

Um dann Dateien mit Stern zu archivieren, führen Sie einfach „Star“ mit der Option „-c“ aus.

$ star -c -f=archive.tar file1 file2

Anschließend können Sie das Dienstprogramm gzip oder gunzip verwenden, um Ihr neues Archiv zu komprimieren.

$ gzip archive.tar

Als Folge wird die anfängliche tar-Datei in ein tar.gz-Archiv umgewandelt.

Wenn Sie jetzt eine Datei mit genau demselben Namen erstellen, würde das Star-Dienstprogramm sie standardmäßig nicht überschreiben.

$ echo "This is some content" > file1

$ gzip -d archive.tar.gz

$ star -x -f=archive.tar
star: current 'file1' newer.
star: current 'file2' newer.
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).

$ cat file1
This is some content

Ganz praktisch, wenn Sie Angst haben, Ihre Inhalte zu verlieren!

Komprimieren von Dateien mit gzip unter Linux

Nachdem Sie Ihr tar-Archiv fertig haben, besteht der nächste Schritt darin, es zu komprimieren, um seine Größe zu reduzieren.

Dafür verwenden wir zunächst das gzip Dienstprogramm.

Standardmäßig sollte das Dienstprogramm gzip installiert sein, aber wenn dies nicht der Fall ist, stellen Sie sicher, dass Sie es abhängig von Ihrer Distribution installieren.

$ sudo apt-get install gzip

$ sudo yum install gzip

Nachdem gzip installiert ist, führen Sie „gzip“ aus und übergeben das soeben erstellte Archiv als Argument.

$ gzip archive.tar

Durch Ausführen des gzip-Befehls wird eine tar.gz erstellt Datei im aktuellen Arbeitsverzeichnis.

Am wichtigsten ist, dass die anfängliche tar-Datei auf eine tar.gz-Datei aktualisiert wird, sodass Sie das ursprüngliche Archiv nicht mehr haben.

$ ls -l
total 12
-rw-rw-r-- 1 schkn schkn  184 Nov  9 10:41 archive.tar.gz
drwxrwxr-x 2 schkn schkn 4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn 4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn    0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn    0 Nov  9 10:41 file2

Wie Sie sehen können, wurde die Dateigröße drastisch von 10 KB auf beeindruckende 184 Byte reduziert, gzip reduzierte die Dateigröße um über 98 %.

Wenn Sie jedoch das gzip-Dienstprogramm nicht verwenden möchten, können Sie Dateien auch mit dem tar-Befehl mit Optionen komprimieren.

Glauben Sie, dass es die Komprimierungsrate verbessern kann?

Dateien unter Linux mit tar komprimieren

Wie im ersten Abschnitt erwähnt, kann der tar-Befehl verwendet werden, um Dateien in einer Zeile zu archivieren und zu komprimieren.

Um Dateien zu komprimieren Fügen Sie bei tar einfach das "-z" hinzu Option zu Ihrem aktuellen Satz von Optionen hinzufügen.

$ tar -cvzf archive1.tar.gz file1 file2 directory1 directory2

Ähnlich wie beim ersten tar-Befehl, den Sie ausgeführt haben, wird eine neue komprimierte Archivdatei in Ihrem aktuellen Arbeitsverzeichnis erstellt.

Um die erstellten Dateien zu überprüfen, führen Sie einfach den Befehl „ls“ erneut aus.

$ ls -l
total 28
-rw-rw-r-- 1 schkn schkn   184 Nov  9 10:41 archive.tar.gz
-rw-rw-r-- 1 schkn schkn   172 Nov  9 11:10 archive1.tar.gz
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Wie Sie nun sehen können, ist das erstellte komprimierte Archiv etwas leichter als das mit gzip erstellte.

Dateien mit bzip2 komprimieren

Meistens der gzip-Befehl wird verwendet, um Dateien oder Archive zu komprimieren.

Dies ist jedoch historisch nicht die einzige Komprimierungsmethode, die in der Softwareentwicklung verfügbar ist:Sie können auch bzip2 verwenden.

Der Hauptunterschied zwischen gzip und bzip2 besteht darin, dass gzip den LZ77-Komprimierungsalgorithmus verwendet während bzip2 den Burrows-Wheeler-Algorithmus verwendet .

Bzip2 ist bekanntermaßen ziemlich langsamer als der gzip-Algorithmus, jedoch kann es in manchen Fällen nützlich sein zu wissen, wie man mit bzip2 komprimiert.

Um Dateien mit bzip2 zu komprimieren, führen Sie einfach „bzip2“ mit dem Dateinamen aus, den Sie komprimieren möchten.

$ bzip2 archive.tar

Um mit bzip2 komprimierte Dateien zu dekomprimieren, hängen Sie einfach die Option „-d“ an Ihren Befehl an.

$ bzip -d archive.tar.bz2

Alternativ können Sie bz2-Archive mit dem tar-Befehl und durch Angabe der Option „-j“ erstellen.

$ tar -cjf archive.tar.gz2 file1 file2

Mit tar haben Sie die Möglichkeit, mit einer breiten Palette verschiedener Komprimierungsmethoden zu komprimieren:

  • -j :eine Datei mit der bz2-Komprimierungsmethode komprimieren;
  • -J :verwendet das xz-Komprimierungsprogramm;
  • –lzip :verwendet das lzip-Komprimierungsprogramm;
  • –lzma :verwendet das lzma-Komprimierungsprogramm;
  • –lzop :verwendet lzop, um Dateien zu komprimieren
  • -z :Äquivalent zum Dienstprogramm gzip oder gunzip.

Schlussfolgerung

In dieser Anleitung haben Sie gelernt, wie Sie archivieren können und komprimieren Dateien mit dem tar-Dienstprogramm unter Linux.

Sie haben auch die verschiedenen verfügbaren Komprimierungsmethoden kennengelernt und erfahren, wie sie verwendet werden können, um die Größe Ihrer Dateien und Verzeichnisse zu reduzieren.

Wenn Sie neugierig auf die Linux-Systemadministration sind, haben wir einen kompletten Abschnitt auf der Website, der ihr gewidmet ist, also werfen Sie einen Blick darauf.


Linux
  1. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 2]

  2. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 1]

  3. So komprimieren und dekomprimieren Sie Dateien unter Linux

  4. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  5. So komprimieren und extrahieren Sie Dateien und Verzeichnisse unter Linux mit gzip und bzip2

So komprimieren Sie Dateien und Verzeichnisse unter Linux

So kopieren Sie Dateien und Verzeichnisse unter Linux

Pigz – Dateien parallel unter Linux komprimieren und dekomprimieren

So installieren Sie Rclone unter Linux und Unix

Linux-tar-Befehl – ​​So komprimieren Sie Dateien unter Linux

So installieren und verwenden Sie Pigz, um Dateien unter Linux schneller zu komprimieren