
Ich versuche, zwei Optionen zum Erstellen eines Tar-Archivs zu kombinieren, aber sie funktionieren nicht gut zusammen. Ich weiß nicht, wo das Problem liegt.
Ich benutze:
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
Wenn ich nur die Option -C verwende, wird ein Tar-Archiv mit nur einem relativen Pfad „./html/“ erstellt, aber mit ALLEN Dateien in diesem Ordner. Das möchte ich nicht.
Wenn ich dann nur die Option -T verwende, wird ein Tar-Archiv mit nur den erforderlichen Dateien erstellt, aber der Pfad ist absolut „/var/www/website/html/wasauchimmer.html“. Das möchte ich auch nicht.
Ich möchte eine Kombination aus beidem, aber irgendwie klappt das nicht.
Die Ordnerstruktur ist:
/var/www/website/html/
- Viele HTML-Dateien
Der Ordner /tmp/htmllist.txt enthält Zeilen wie:
- /var/www/website/html/datei1.html
- /var/www/website/html/file5.html
- /var/www/website/html/file32.html
Und so weiter.
Wie löse ich dieses Problem?
Antwort1
Tar funktioniert bei der Verwendung genau umgekehrt -T
. Es archiviert die Dateien inklusive des vollständigen Pfads. Wenn Sie den Pfad nicht benötigen, entfernen Sie ihn beim Extrahieren, zum Beispiel:
Tarball erstellen
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
Tarball extrahieren
tar -xvf html.tgz --strip-path=3
Dadurch werden drei Komponenten aus dem Ausgabepfad entfernt, d. h. /var/www/website.