Wie kann ich ein Verzeichnis tarballen, ohne / path / to / folder zu übertragen?

15

Beispielbefehl:
$ tar -cvjf destination.tar.bz2 /path/to/folder/source

Ich möchte, dass das endgültige Verzeichnis destination.tar.bz2beim Extrahieren kein /path/to/folder/Dateiverzeichnis enthält. Es scheint ineffizient zu sein, den Tarball zu extrahieren und dann den Inhalt /path/to/folder/sourcein ein anderes Verzeichnis zu verschieben.

Flaschen
quelle

Antworten:

19

tar -C /path/to/folder -cvjf /path/for/acrhive.tar.bz2 source

-C (Großbuchstaben) bedeutet "Verzeichnis ändern", daher wird Ihre Dateispezifikation relativ zum angegebenen Pfad -C

dünnes Eis
quelle
Beachten Sie, dass der von Ihnen für "source" angegebene Pfad relativ zum "-C" ist. Das ist es, was @thinice geschrieben hat. Es ist nur so, dass, wenn Sie selbst bei Verwendung von "-C" immer noch einen absoluten Pfad anstelle eines relativen angeben, Sie nicht das gewünschte Ergebnis erzielen.
GuyPaddock
4

Es gibt viele Möglichkeiten, dies zu erreichen, aber dies ist wahrscheinlich die einfachste:

cd /path/to/folder
tar -cvjf /past/to/destination.tar.bz2 source
Chris S
quelle