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/forum
einen Ordner. Was muss ich tun, um es in /home/username/forum
einen 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 2
in --strip-components
.
Wenn Sie nicht sicher sind, was sich in einem Tarball befindet, verwenden Sie die t
Option:
tar tjf forum.tar.bz2
Leiten Sie es weiter, less
sodass 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 machtc
- erstellt ein Tarballt
- listet den Inhalt eines Tarballs aufj
- Tar veranlasst, bzip2-komprimierte Tarballs zu dekomprimieren. Dies ist mit der.bz2
Erweiterung 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" .