Erhalten Sie Airship's mystische Archive mit Tar

LinuxBeginner
Jetzt üben

Einführung

Der tar-Befehl in Linux ist ein leistungsstarkes Werkzeug zur Archivierung von Dateien und Verzeichnissen. Mit diesem Tool können Benutzer mehrere Dateien und Verzeichnisse in einer einzigen Archivdatei zusammenfassen, was die Datenspeicherung, -übertragung und -sicherung effizienter macht. In diesem Lab (Übungsumgebung) lernen Sie, wie Sie den tar-Befehl verwenden, um Archive zu erstellen, deren Inhalt anzuzeigen und Dateien daraus zu extrahieren. Diese Fähigkeiten sind für Systemadministratoren, Entwickler und alle Linux-Benutzer, die Daten effizient verwalten müssen, unerlässlich.

Erstellen einer Verzeichnisstruktur für die Archivierung

Bevor wir ein Archiv erstellen können, benötigen wir einige Dateien und Verzeichnisse, mit denen wir arbeiten können. In diesem Schritt erstellen Sie eine Verzeichnisstruktur mit verschiedenen Dateien, die später archiviert werden.

Zunächst navigieren wir in das Standardarbeitsverzeichnis:

cd ~/project

Jetzt erstellen wir ein Verzeichnis namens document_library mit drei Unterverzeichnissen: reports, specifications und references:

mkdir -p ~/project/document_library/{reports,specifications,references}

Der mkdir-Befehl erstellt Verzeichnisse, und die Option -p ermöglicht es uns, übergeordnete Verzeichnisse zu erstellen, falls sie nicht existieren. Die geschweiften Klammern {} werden verwendet, um mehrere Unterverzeichnisse auf einmal zu erstellen.

Als Nächstes erstellen wir einige Beispieldateien in jedem dieser Verzeichnisse:

touch ~/project/document_library/reports/{quarterly,annual,monthly}.txt
touch ~/project/document_library/specifications/{product,service,system}.txt
touch ~/project/document_library/references/{guide,manual,handbook}.txt

Der touch-Befehl erstellt leere Dateien. In diesem Fall erstellen wir drei Textdateien in jedem Unterverzeichnis.

Lassen Sie uns überprüfen, ob unsere Verzeichnisstruktur korrekt erstellt wurde, indem wir den ls-Befehl mit der Option -R verwenden, um den Inhalt der Verzeichnisse rekursiv aufzulisten:

ls -R ~/project/document_library

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

Dies zeigt, dass wir unsere Verzeichnisstruktur mit den Beispieldateien erfolgreich erstellt haben. Im nächsten Schritt lernen wir, wie wir ein Archiv dieser Dateien mit dem tar-Befehl erstellen.

Erstellen eines Archivs mit tar

Nachdem wir nun unsere Verzeichnisstruktur eingerichtet haben, verwenden wir den tar-Befehl, um ein Archiv des gesamten document_library-Verzeichnisses zu erstellen. Der tar-Befehl ist vielseitig und hat viele Optionen, aber wir konzentrieren uns zunächst auf die häufigsten.

Die grundlegende Syntax zum Erstellen eines Archivs mit tar lautet:

tar [Optionen] [Archivname] [Dateien oder Verzeichnisse zum Archivieren]

Häufige Optionen sind:

  • -c: Erstellt ein neues Archiv
  • -z: Komprimiert das Archiv mit gzip
  • -v: Ausführlicher Modus (zeigt den Fortschritt an)
  • -f: Gibt den Dateinamen des Archivs an
  • -C: Wechselt in das angegebene Verzeichnis, bevor die Operationen ausgeführt werden

Erstellen wir nun ein komprimiertes Archiv unseres document_library-Verzeichnisses:

tar -czvf ~/project/documents_archive.tar.gz -C ~/project document_library

In diesem Befehl:

  • -c teilt tar mit, ein neues Archiv zu erstellen
  • -z teilt tar mit, das Archiv mit gzip zu komprimieren
  • -v aktiviert den ausführlichen Modus und zeigt die verarbeiteten Dateien an
  • -f ~/project/documents_archive.tar.gz gibt den Namen der Archivdatei an
  • -C ~/project teilt tar mit, in das ~/project-Verzeichnis zu wechseln, bevor das Archiv erstellt wird
  • document_library ist das Verzeichnis, das wir archivieren möchten

Sie sollten eine Ausgabe sehen, die alle Dateien auflistet, die dem Archiv hinzugefügt werden. Dies zeigt an, dass das Archiv erfolgreich erstellt wird.

Um zu überprüfen, ob das Archiv erstellt wurde, überprüfen wir seine Existenz und Größe:

ls -lh ~/project/documents_archive.tar.gz

Die Ausgabe sollte in etwa so aussehen:

-rw-r--r-- 1 labex labex 237 Sep 22 10:00 /home/labex/project/documents_archive.tar.gz

Die Optionen -lh bei ls zeigen detaillierte Informationen einschließlich der Dateigröße in menschenlesbarer Form an. Die tatsächliche Dateigröße kann variieren, sollte aber relativ klein sein, da unsere Beispieldateien leer sind.

Herzlichen Glückwunsch! Sie haben erfolgreich ein komprimiertes Archiv Ihrer Verzeichnisstruktur erstellt. Im nächsten Schritt werden wir untersuchen, wie Sie den Inhalt dieses Archivs anzeigen können, ohne es zu extrahieren.

Anzeigen des Inhalts eines Archivs

Bevor Sie ein Archiv extrahieren, ist es oft nützlich, seinen Inhalt anzuzeigen, um sicherzustellen, dass es die erwarteten Dateien enthält oder um bestimmte Dateien zu finden. Der tar-Befehl bietet Optionen, um den Inhalt eines Archivs aufzulisten, ohne es zu extrahieren.

Um den Inhalt des von uns erstellten Archivs aufzulisten, verwenden Sie den folgenden Befehl:

tar -tvf ~/project/documents_archive.tar.gz

In diesem Befehl:

  • -t teilt tar mit, den Inhalt des Archivs aufzulisten
  • -v aktiviert den ausführlichen Modus und zeigt detaillierte Informationen an
  • -f ~/project/documents_archive.tar.gz gibt die zu untersuchende Archivdatei an

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/references/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/guide.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/handbook.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/manual.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/reports/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/monthly.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/quarterly.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/specifications/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/product.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/service.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/system.txt

Diese Ausgabe zeigt die Berechtigungen, den Eigentümer, die Größe, das Änderungsdatum und den Pfad jeder Datei und jedes Verzeichnisses im Archiv.

Wenn Sie nach bestimmten Dateien im Archiv suchen möchten, können Sie die Ausgabe an grep weiterleiten. Beispielsweise, um alle Dateien zu finden, deren Name "annual" enthält:

tar -tvf ~/project/documents_archive.tar.gz | grep annual

Dies sollte Folgendes anzeigen:

-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt

Das Anzeigen des Inhalts eines Archivs ist nützlich, wenn Sie überprüfen müssen, was sich darin befindet, bevor Sie es extrahieren, insbesondere wenn es sich um große Archive handelt oder wenn Sie nur an bestimmten Dateien interessiert sind. Im nächsten Schritt lernen wir, wie wir Dateien aus unserem Archiv extrahieren.

Extrahieren von Dateien aus einem Archiv

Nachdem wir nun wissen, wie man Archive erstellt und deren Inhalt anzeigt, lernen wir, wie man Dateien aus einem Archiv extrahiert. Dies ist nützlich, wenn Sie Dateien aus einer Sicherung wiederherstellen müssen oder wenn Sie ein Archiv von jemand anderem erhalten.

Um dies zu demonstrieren, simulieren wir zunächst ein Szenario, in dem unsere ursprüngliche Verzeichnisstruktur verloren gegangen ist. Wir entfernen das document_library-Verzeichnis:

rm -rf ~/project/document_library

Der rm-Befehl entfernt Dateien und Verzeichnisse, und die Optionen -rf veranlassen ihn, rekursiv zu arbeiten und die Entfernung ohne Bestätigungsaufforderung zu erzwingen. Seien Sie vorsichtig, wenn Sie diesen Befehl in der Praxis verwenden, da er Dateien dauerhaft löscht.

Lassen Sie uns überprüfen, ob das Verzeichnis entfernt wurde:

ls -la ~/project

Sie sollten document_library nicht in der Auflistung sehen, aber die Datei documents_archive.tar.gz sollte weiterhin vorhanden sein.

Jetzt extrahieren wir das Archiv, um unsere Dateien wiederherzustellen. Die grundlegende Syntax zum Extrahieren mit tar lautet:

tar [Optionen] [Archivname]

Häufige Extraktionsoptionen sind:

  • -x: Extrahiert Dateien aus einem Archiv
  • -z: Entpackt mit gzip
  • -v: Ausführlicher Modus (zeigt den Fortschritt an)
  • -f: Gibt den Dateinamen des Archivs an
  • -C: Wechselt in das angegebene Verzeichnis, bevor die Extraktion erfolgt

Extrahieren wir nun unser Archiv:

tar -xzvf ~/project/documents_archive.tar.gz -C ~/project

In diesem Befehl:

  • -x teilt tar mit, Dateien zu extrahieren
  • -z teilt tar mit, das mit gzip komprimierte Archiv zu entpacken
  • -v aktiviert den ausführlichen Modus und zeigt die extrahierten Dateien an
  • -f ~/project/documents_archive.tar.gz gibt die Archivdatei an
  • -C ~/project teilt tar mit, die Dateien in das ~/project-Verzeichnis zu extrahieren

Sie sollten eine Ausgabe sehen, die alle extrahierten Dateien auflistet, ähnlich wie beim Erstellen des Archivs.

Lassen Sie uns überprüfen, ob unsere Verzeichnisstruktur wiederhergestellt wurde:

ls -R ~/project/document_library

Sie sollten die gleiche Verzeichnisstruktur und die gleichen Dateien sehen, die wir ursprünglich erstellt haben:

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

Wenn Sie nur bestimmte Dateien aus einem Archiv extrahieren möchten, können Sie ihre Pfade nach dem Archivnamen angeben. Beispielsweise, um nur das reports-Verzeichnis zu extrahieren:

mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports

Dadurch wird nur das reports-Verzeichnis und sein Inhalt in das extracted_reports-Verzeichnis extrahiert.

Herzlichen Glückwunsch! Sie haben erfolgreich gelernt, wie man Dateien aus einem Archiv mit dem tar-Befehl extrahiert. Diese Fähigkeit ist für die Wiederherstellung von Sicherungen, die Installation von Software aus Quellcode und viele andere Linux-Operationen unerlässlich.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den tar-Befehl in Linux verwenden, um Dateiarchive zu verwalten. Sie haben mehrere essentielle Fähigkeiten geübt:

  1. Erstellen einer Verzeichnisstruktur mit Dateien als Vorbereitung für die Archivierung
  2. Erstellen eines komprimierten Archivs mit dem tar-Befehl und den Optionen -czvf
  3. Anzeigen des Inhalts eines Archivs ohne es zu extrahieren, indem Sie die Optionen -tvf verwenden
  4. Extrahieren von Dateien aus einem Archiv, um Daten wiederherzustellen, indem Sie die Optionen -xzvf verwenden

Diese Fähigkeiten sind für viele Linux-Operationen grundlegend, einschließlich Sicherungs- und Wiederherstellungsverfahren, Softwareinstallation und Dateiverwaltung. Der tar-Befehl ist ein leistungsstarkes Werkzeug in der Linux-Umgebung, und das Verständnis seiner effektiven Nutzung wird Ihnen helfen, Ihre Daten effizient zu verwalten.

Denken Sie an die wichtigsten Optionen für den tar-Befehl:

  • -c: Erstellt ein neues Archiv
  • -x: Extrahiert Dateien aus einem Archiv
  • -t: Listet den Inhalt eines Archivs auf
  • -z: Nutzt die gzip-Komprimierung
  • -v: Ausführlicher Modus (zeigt den Fortschritt an)
  • -f: Gibt den Dateinamen des Archivs an
  • -C: Wechselt in das angegebene Verzeichnis, bevor die Operationen ausgeführt werden

Jetzt können Sie sich sicher sein, den tar-Befehl in Ihrer Linux-Umgebung zur Erstellung von Sicherungen, zum Teilen von Dateien und zur Wiederherstellung von Daten zu nutzen.