Erstellen eines Tar-Archivs aus einer Dateiliste UND Entfernen des vollständigen Pfads

Erstellen eines Tar-Archivs aus einer Dateiliste UND Entfernen des vollständigen Pfads

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.

verwandte Informationen