Jak spakować katalog bez przenoszenia katalogu / path / to /?

15

Przykładowe polecenie:
$ tar -cvjf destination.tar.bz2 /path/to/folder/source

Chciałbym, aby końcowy destination.tar.bz2, po rozpakowaniu, nie zawierał /path/to/folder/katalogu plików. Wydaje się nieskuteczne wyodrębnienie archiwum, a następnie przeniesienie zawartości mv /path/to/folder/sourcedo innego katalogu.

butelki
źródło
powiązane: stackoverflow.com/questions/18681595/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

19

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

-C (wielkie litery) oznacza „zmień katalog”, więc specyfikacja pliku staje się względna do podanej ścieżki -C

cienki lód
źródło
Pamiętaj, że ścieżka podana dla „źródła” jest względna do „-C”. Na przykład to, co napisała @thinice, po prostu jeśli nadal podajesz ścieżkę bezwzględną zamiast względnej, nawet używając „-C”, nie uzyskasz pożądanego rezultatu.
GuyPaddock,
4

Istnieje wiele sposobów, aby to osiągnąć, ale jest to prawdopodobnie najprostszy:

cd /path/to/folder
tar -cvjf /past/to/destination.tar.bz2 source
Chris S.
źródło