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

Erste Schritte mit dem Tar-Befehl

Was ist Teer? Tar steht für „Tape Archive“ und bezieht sich auf eine Praxis aus früheren Computertagen, als Daten auf Bändern gesichert wurden. Trotz des nostalgischen Ursprungs des Namens ist tar sehr leistungsfähig und verwendet moderne Technologien zum Archivieren und Komprimieren von Dateien.

Aktualisieren Sie die Grundlagen:Archiv vs. Komprimierung

Der tar-Befehl ist für Linux-Benutzer wichtig, um ihn zu verstehen. Bevor wir zu tief in das Thema einsteigen, fangen wir mit einer kleinen Klarstellung an.

  • Archivierung – Das Speichern mehrerer Dateien als eine Datei.
  • Komprimierung – Der Vorgang des Verkleinerns einer oder mehrerer größerer Dateien.

Tar ist ein Archivierungstool. Es erstellt eine einzelne Datei aus mehreren Dateien. Dies spart Netzwerkbandbreite, Zeit und Rechenleistung beim Übertragen der Dateien. Eine einzelne Datei von 100 MB benötigt aufgrund des Datei-Overheads viel weniger als die Übertragung von 100 Dateien von 1 MB.

Aus diesem Grund finden Sie Software häufig in einem „Tarball“. ‘. Tarball ist der gebräuchliche Begriff für eine Tar-Datei.

Während tar selbst Dateien nicht komprimieren kann, können Sie einen der üblichen Komprimierungsalgorithmen verwenden, um die Dateien zu komprimieren, während Sie einen Tarball erstellen. Wie das geht, zeige ich Ihnen später in diesem grundlegenden Tar-Tutorial.

Gemeinsame tar-Dateien

Hier sind einige der üblichen „tar-Dateien“, die Sie finden werden:

.Tar :Dies ist eine Tarball-Datei. Es ist nur ein Archiv und es wird keine Komprimierung durchgeführt.

.Tar.Gz oder .tgz :Dies ist die Erweiterung eines mit Gzip komprimierten Archivs.

.Tar.Bz2 oder .tbz :Dies ist die Erweiterung eines mit Bz2 komprimierten Archivs. Dies ist eine relativ neue Technologie. Es verfügt über ein höheres Komprimierungsverhältnis, aber diese erhöhte Schrumpfleistung bedeutet, dass es etwas länger dauert, bis es fertig ist.

.Tar.xz oder .txz usw. :Tar bietet auch integrierte Unterstützung für xz, lzip und mehr. Diese Tools verwenden hauptsächlich denselben Komprimierungsalgorithmus, LZMA. Das beliebte 7z, das in Windows-Umgebungen mittlerweile recht verbreitet ist, verwendet diesen Algorithmus ebenfalls. Weitere Unterschiede in den Dateien ergeben sich aus Struktur und Metadaten. Ich werde in unseren Beispielen nicht auf diese Details eingehen, aber ich wollte sie erwähnen.

Es ist wichtig, sich daran zu erinnern, dass Erweiterungen auf Linux und anderen Unix-basierten Systemen nicht erforderlich sind. Ihr Unix-System kann Dateien normalerweise unabhängig von der Erweiterung anhand ihrer Header identifizieren, aber die Verwendung des gemeinsamen Namensschemas kann helfen, Verwirrung zu vermeiden. Sie können den file-Befehl unter Linux verwenden, um den Typ einer Datei zu erfahren.

Tar-Befehlsbeispiele

In diesem Artikel möchte ich einige der gängigen Methoden zum Archivieren und Komprimieren von Dateien mit tar demonstrieren.

Ich habe einige Dateien verschiedener Typen in meinem Ordner Dokumente zusammengestellt. Es gibt Archivbilder und einige Textdateien. Wir werden uns anhand einiger Beispiele ansehen, wie sich die Dateigröße durch die Komprimierung verändert.

Hier ist eine vollständige Liste der Dokumente, die verwendet werden.

[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x  2 christopher christopher    4096 May  5 10:55 ./
drwxr-xr-x 17 christopher christopher    4096 May  5 10:59 ../
-rw-r--r--  1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem1.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem2.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem3.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:56 lorem.txt
-rw-r--r--  1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg

Ich habe bereits die Fähigkeiten von tar angesprochen. Es ist ein leistungsstarkes Tool mit vielen Optionen. Die verschiedenen Optionen und Dateitypen können den Befehl komplizierter erscheinen lassen, als er wirklich ist. Wie immer ist es mein Ziel, die Befehlszeile zu entmystifizieren. Lassen Sie uns also die Dinge in kleinere Teile zerlegen, bevor wir mehrere Optionen in den Beispielen kombinieren.

Hier ist eine Tabelle mit häufig verwendeten Optionen. Denken Sie daran, dies ist nur der Anfang. Ich empfehle, die Hilfedokumentation selbst durchzugehen, um noch mehr Möglichkeiten zu finden, sobald Sie sich wohl fühlen.

Schalter Erweiterte Optionen Beschreibung
-c, –erstellen neues Archiv erstellen
-d, –diff, –compare Unterschiede zwischen Archiv und Dateisystem finden
-r, –anhängen Dateien an das Ende eines Archivs anhängen
-t, –Liste den Inhalt eines Archivs auflisten
-u, –aktualisieren nur Dateien anhängen, die neuer sind als ins Archiv kopieren
-x, –extrahieren, –holen Dateien aus einem Archiv extrahieren
-j, –bzip2 Archiv durch bzip2 filtern
-z, –gzip, –gunzip, –ungzip Archiv durch gzip filtern

1) Erstellen Sie einen Tarball

Zuvor habe ich die allgemeinen Dateitypen erwähnt, die mit dem tar-Befehl verbunden sind. Dies ist vielleicht das grundlegendste.

tar cvf output_tarball.tar source_directory

Es wird keine Komprimierung angewendet, sodass die Datei mindestens so viel Speicherplatz belegt wie die Dateien im Dokumentenordner.

[email protected]:~$ tar cvf doc.tar ~/Documents

tar cvf (create, verbose, file-archive):Es erstellt eine neue tar-Datei namens doc.tar aus allen Dateien in ~/Documents.

[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May  5 11:00 doc.tar

Beachten Sie, dass der Tarball dieselbe Verzeichnisstruktur wie Ihr Quellverzeichnis des Tarballs haben wird.

2) Erstellen Sie einen gzip-Tarball

Lassen Sie uns beim Erstellen des Tarballs die gzip-Komprimierung ausprobieren.

[email protected]:~$ tar cvzf doc.tar.gz ~/Documents

tar cvzf (create, verbose, g-zip, file-archive):Es erstellt eine neue tar-Datei namens doc.tar.gz aus allen Dateien in ~/Documents. Es verwendet die gzip-Komprimierung (mit Option z) beim Erstellen des Tarballs.

[email protected]:~$ ll doc.tar.gz 
-rw-r--r-- 1 christopher christopher 7512498 May  5 11:01 doc.tar.gz

Wie Sie sehen können, ist die gzippte Tarball-Größe 54862 Bytes (53 MB) kleiner als eine normale, unkomprimierte Tarball-Datei.

Achten Sie bei der Verwendung von Bindestrichen – mit tar-Optionen

Wenn Sie Optionen mit einem Linux-Befehl verwenden, fügen Sie normalerweise einen Bindestrich (-) vor den Optionen hinzu.
Der Bindestrich vor Optionen ist nicht obligatorisch und wird am besten vermieden. Deshalb habe ich es in den Beispielen nicht verwendet.
Wenn Sie Bindestriche vor den Optionen verwenden, sollten Sie immer das f am Ende der Optionen stehen lassen. Wenn Sie tar -cvfz verwenden, wird das z zu einem Argument für die Option z. Und dann sehen Sie einen Fehler wie diesen:

tar:doc.tar.gz:Kann nicht angezeigt werden:Keine solche Datei oder Verzeichnis

Aus diesem Grund ist es eine gute Praxis, die Option f am Ende aller anderen Optionen zu verwenden, damit selbst ein gewohnheitsmäßiger Bindestrich kein Problem darstellt.

3) Erstellen Sie einen bz2-Tarball

Angenommen, Sie möchten einen bz2-Tarball erstellen. Die Schritte sind die gleichen wie beim vorherigen. Sie müssen nur die Option z (gzip) in j (bz2) ändern. Beziehen Sie sich auf die Optionstabelle, die ich zuvor erwähnt hatte.

[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents

tar cvfj (erstellen, ausführlich, bz2-Typ, Dateiarchiv).

[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May  5 11:04 doc.tar.bz2

Beachten Sie die Größe? Es ist sogar noch kleiner als der gezippte Tarball.

4) Den Inhalt eines Tarballs auflisten

Sie können das -t verwenden Option (anstelle von -c), um den Inhalt einer Archivdatei anzuzeigen. Dies funktioniert unabhängig davon, ob die Datei komprimiert ist oder nicht. Es wird die tatsächliche Dateigröße aufgelistet, nicht die komprimierte Größe.

[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt

5) Weitere Dateien zu einem Tarball hinzufügen

Sie können Dateien mit -r an ein Tarball-Archiv anhängen . Sie können einem komprimierten Archiv keine Dateien hinzufügen, ohne sie vorher mit dem tar-Befehl zu extrahieren.

Sie können auch mit -u anhängen Möglichkeit zum Update. Diese Option soll nur die neuen Dateien gemäß der Hilfedokumentation hinzufügen, aber in meiner Praxis funktionierte sie genauso wie das Anhängen, das Hinzufügen neuer Kopien aller Dateien.

[email protected]:~$ tar rvf doc.tar ~/Documents/

6) Extrahieren Sie einen Tarball

Nachdem Sie nun gesehen haben, wie sich die verschiedenen Arten der Komprimierung auf die Gesamtdateigröße auswirken, wollen wir uns das Extrahieren dieser Dateien ansehen.

[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz 

Ich wechselte in ein neues Verzeichnis namens docs. Dann habe ich tar xvf (extract, verbose, file-archive) verwendet, um den Inhalt hier zu entpacken.

[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg  lorem1.txt  lorem2.txt  lorem3.txt  lorem.txt  mountain-range-2397645.jpg

Es ist wichtig zu beachten, dass tar die Dateistruktur beibehält. Wenn ich die Dateien entpacke, befinden sie sich also in /home/christopher/Documents. Um dies zu vermeiden, können Sie in das gewünschte Verzeichnis (~/Documents) wechseln und alle Dateien mit dem Platzhalter * anstelle der Verzeichnisstruktur kopieren.

7) Extrahieren Sie den Tarball in ein bestimmtes Verzeichnis

Standardmäßig wird der Inhalt eines Tarballs in das aktuelle Verzeichnis extrahiert. Das ist nicht immer erwünscht.

Sie können einen Tarball folgendermaßen in ein bestimmtes Verzeichnis extrahieren:

tar xvf tar_file -C destination_directory

Das Zielverzeichnis muss vorhanden sein, stellen Sie also sicher, dass Sie zuvor mit dem Befehl mkdir eines erstellt haben.

Zusammenfassung

Folgendes müssen Sie bei der Verwendung von tar unter Linux beachten:
Es wird fast immer im tar cf- oder tar xvf-Format verwendet. Denken Sie daran:

  • c steht für create:Sie verwenden es zum Erstellen eines Tarballs
  • x steht für Extract:Sie verwenden es zum Extrahieren eines Tarballs
  • f steht für Datei:Sie verwenden es für den Namen der TAR-Datei (sowohl zum Erstellen als auch zum Extrahieren). Versuchen Sie es am Ende der Optionen zu verwenden.
  • v steht für verbose:Es ist optional, zeigt aber an, was mit dem Befehl passiert.

    Natürlich können Sie nicht sowohl c- als auch x-Optionen im selben tar-Befehl verwenden.

Fazit

Hat Ihnen unser Leitfaden zum tar-Befehl gefallen? Ich hoffe, all diese Tipps haben Ihnen etwas Neues beigebracht.

Wenn Ihnen dieser Leitfaden gefällt, teilen Sie ihn bitte in den sozialen Medien. Wenn Sie Kommentare oder Fragen haben, hinterlassen Sie diese unten.

Wenn Sie Vorschläge für Themen haben, die Sie gerne behandelt sehen möchten, können Sie diese auch gerne hinterlassen. Danke fürs Lesen.


Linux
  1. Erste Schritte mit Zsh

  2. Erste Schritte mit dem Linux-tac-Befehl

  3. Erste Schritte mit dem Linux-cat-Befehl

  4. Erste Schritte mit ls

  5. Erste Schritte mit PostgreSQL unter Linux

Erste Schritte mit GIT unter Linux

Erste Schritte mit UFW (unkomplizierte Firewall) unter Ubuntu 20.04

Erste Schritte mit systemctl

Erste Schritte mit cPanel

Erste Schritte mit dem SED-Befehl [Leitfaden für Anfänger]

Erste Schritte mit AWK Command [Leitfaden für Anfänger]