tar - видалення провідних компонентів каталогів при вилученні


104

Як ви можете витягнути лише цільовий реж, а не ціле дерево дира?

компрес

tar cf /var/www/site.tar /var/www_bak/site

витяг

tar xf /var/www/site.tar -C /tmp

Це призведе до:

/tmp/var/www/site

Як можна уникнути створення цілого дерева dir при вилученні файлу?

Що я хочу витягти з цього:

/tmp/site

Відповіді:


34

Чому б не використовувати -Cваріант при створенні:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Це теж спрацювало б, використовуючи той самий -Cваріант;)
MikeyB

12
Він хоче позбавити шлях від деяких провідних компонентів, а не змінювати вихідний каталог. Дивіться нижче для правильної відповіді.
aymericbeaumet

4
Ми не можемо використовувати його, коли хтось інший готує архів.

Тому що `` `_t = префікс - $ (дата +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" - файли ...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon

258

Ви хочете скористатися --strip-components=NUMBERопцією tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Вашою командою буде:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Ця відповідь краще, тому що вам не потрібно думати про це перед створенням дьогтю. Ви можете використовувати його з уже створеним файлом tar. Дякую @MikeyB!
Fabien Quatravaux

4
Я радий повідомити, що це працює як на GNU tar, так і на BSD tar.
Натан Осман

4
і тому, що ви, можливо, не є творцем дьогтю ... (або якщо ви робите це за допомогою іншого інструменту, і цей інструмент робить дурні речі ...)
xenoterracide

ви, можливо, все ще не вистачаєте --strip-componentsпрапора, якщо ви використовуєте вбудовану реалізацію tar.
sylvainulg

1
@FabienQuatravaux Ну, так --- якщо ви помилилися і створили архів, який включає провідні каталоги, які ви не хочете бачити під час вилучення. Але зрозуміліше створити архів без перших небажаних каталогів.
Калаф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.