Wir werden den `tar`-Befehl mit der `–exclude`-Option verwenden. Sie können diese Option mehrfach angeben, um mehrere Dateien oder Verzeichnisse auszuschließen.
Entwicklungsschritte:
1. Navigieren zum Startpunkt: Wechseln Sie in das Verzeichnis, dessen Inhalt Sie archivieren möchten.
2. Archivieren und Komprimieren mit Ausschlüssen: Verwenden Sie den `tar`-Befehl mit dem Punkt (`.`) für das Quellverzeichnis und fügen Sie eine oder mehrere `–exclude`-Optionen für die auszuschließenden Pfade hinzu.
Der Code und Implementierungsanweisungen
Der grundlegende Befehl mit `–exclude`:
tar -czvf.tar.gz . --exclude=' ' --exclude=' '
Erklärung der Optionen und des Arguments:
-c: Steht für „create“ (erstellen).
-z: Steht für „gzip“. Komprimiert das Archiv mit gzip.
-v: Steht für „verbose“ (ausführlich). Zeigt die Namen der Dateien an, während sie dem Archiv hinzugefügt werden.
-f: Steht für „file“ (Datei). Gibt den Namen der Archivdatei an.
.: Steht für das aktuelle Verzeichnis. Dies bedeutet, dass tar alle Dateien und Unterverzeichnisse, die sich im aktuellen Verzeichnis befinden, in das Archiv aufnehmen wird.
`–exclude=‘
Der Pfad innerhalb der einfachen Anführungszeichen (`‘ ‚`) sollte relativ zum Startpunkt des `tar`-Befehls sein (also relativ zum aktuellen Verzeichnis `.` in diesem Fall).
Wenn der Pfad Leerzeichen enthält, müssen Sie ihn in Anführungszeichen setzen. Es ist gute Praxis, ihn immer in Anführungszeichen zu setzen, um Probleme zu vermeiden.
Beispiel 1: Ein einzelnes Unterverzeichnis ausschließen
Angenommen, Sie befinden sich im Verzeichnis `/var/www/html` und möchten alles darin archivieren, aber das Unterverzeichnis `cache` und seine Inhalte ausschließen:
cd /var/www/html tar -czvf website_backup.tar.gz . --exclude='cache'
In diesem Fall wird `tar` alle Dateien und Verzeichnisse unter `/var/www/html` in `website_backup.tar.gz` aufnehmen, aber das Verzeichnis `/var/www/html/cache` (und alles, was darin ist) wird ignoriert.
Beispiel 2: Mehrere Unterverzeichnisse oder Dateien ausschließen
Wenn Sie das Verzeichnis `cache` und das Verzeichnis `logs` ausschließen möchten, sowie eine bestimmte Datei namens `config.php`:
cd /var/www/html tar -czvf website_backup.tar.gz . --exclude='cache' --exclude='logs' --exclude='config.php'
Beispiel 3: Wildcards in `–exclude` verwenden
Sie können auch Wildcards (Platzhalter) in den Ausschlussmustern verwenden. Zum Beispiel, um alle Dateien mit der Endung `.log` auszuschließen:
cd /var/www/html tar -czvf website_backup.tar.gz . --exclude='*.log'
Oder um ein temporäres Verzeichnis auszuschließen, das immer mit `temp_` beginnt:
cd /var/www/html tar -czvf website_backup.tar.gz . --exclude='temp_*'
Wichtige Hinweise zur Implementierung:
1. Relativ zum Startpunkt: Denken Sie daran, dass die Pfade in `–exclude` relativ zu dem Verzeichnis sein müssen, das Sie mit `.` angeben. Wenn Sie also `cd /var/www/html` machen und dann `tar … . –exclude=’cache’`, bezieht sich `cache` auf `/var/www/html/cache`.
2. Anführungszeichen: Setzen Sie die Ausschlussmuster immer in einfache Anführungszeichen (`‘ ‚`), um sicherzustellen, dass die Shell die Wildcards nicht interpretiert, bevor `tar` die Möglichkeit dazu hat.
3. Mehrere `–exclude`: Sie können so viele `–exclude`-Optionen hinzufügen, wie Sie benötigen, um alle gewünschten Pfade auszuschließen.
4. Ausschließen des Zielarchivs: Eine sehr häufige Anwendung ist es, das neu erstellte Archiv selbst vom Archivierungsprozess auszuschließen, wenn das Archiv im selben Verzeichnis erstellt wird, das auch archiviert wird. Dies verhindert, dass das Archiv sich selbst in das Archiv packt, was zu Endlosschleifen oder Fehlern führen könnte.
tar -czvf website_backup.tar.gz . --exclude='website_backup.tar.gz'
Durch die Verwendung von `–exclude` haben Sie sehr viel Kontrolle darüber, was in Ihr Archiv aufgenommen wird und was nicht.