Wie extrahiere ich ein Tarball und überspringe dabei einige der führenden Verzeichnisse?

Wie extrahiere ich ein Tarball und überspringe dabei einige der führenden Verzeichnisse?

Ich archiviere einen Ordner mit folgendem Befehl:

tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/

Dann extrahiere ich mit:

tar jxf forum.tar.bz2 ./

Es wird korrekt extrahiert, erstellt aber /home/username/forum/var/www/forumeinen Ordner. Was muss ich tun, um es in /home/username/forumeinen Ordner zu extrahieren?

Danke

Antwort1

Zusätzlich zuAntwort von dv3500eakönnen Sie den nächsten Befehl verwenden, um Tarballs mit var/www/forum/folgendem Inhalt zu extrahieren forum/:

tar xjf forum.tar.bz2 --strip-components=2

var/und www/sind zwei Pfadkomponenten, daher das 2in --strip-components.

Wenn Sie nicht sicher sind, was sich in einem Tarball befindet, verwenden Sie die tOption:

tar tjf forum.tar.bz2

Leiten Sie es weiter, lesssodass Sie die Pfeiltasten zum Scrollen verwenden können.

Ein allgemeiner Hinweis zu den verwendeten Optionen:

  • x- extrahiert ein Tarball, ich platziere es immer als erste Option, da es am logischsten ist, zu sehen, was ein Befehl macht
  • c- erstellt ein Tarball
  • t- listet den Inhalt eines Tarballs auf
  • j- Tar veranlasst, bzip2-komprimierte Tarballs zu dekomprimieren. Dies ist mit der .bz2Erweiterung redundant, daher können Sie diese Option auch entfernen.
  • f- diese Option erwartet als Argument einen Dateinamen, entweder das zu entpackende ( tar xf file.tar.bz2) oder zu erstellende ( tar cf file.tar.bz2) Tarball.

Antwort2

Ändern Sie beim Erstellen des Archivs -C /var/www/das aktuelle Verzeichnis während der Erstellung des Archivs in /var/www.

tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum

Dadurch wird der Ordner „Forum“ auf der obersten Ebene des Archivs angezeigt und daher direkt in den aktuellen Ordner extrahiert, wenn Sie Folgendes ausführen:

tar jxf forum.tar.bz2 ./

Antwort3

Die schnelle (und möglicherweise falsche) Lösung wäre, Ihren Befehl so zu ändern, dass vor dem Tarieren die Verzeichnisse gewechselt werden. IE:

cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .

verwandte Informationen