Чи можу я витягнути певну папку за допомогою tar в іншу папку?


14

Я новачок у світі Linux і, здається, натрапив на камеру спотикання. Я знаю , що може витягти архів з допомогою , специфічних команд , tar xvfz archivename.tar.gz sampledir/проте , як можна витягти , sampledir/щоб testdir/замість шляху , що архів знаходиться в egcurrently архів знаходиться в дорозі , /tmp/archivename.tar.gzі я хотів би, щоб витягти sampledirна testdirякий знаходиться в дорозі /tmp/testdir.

Відповіді:


19

Що ви шукаєте, це -Cваріант:

$ man tar
<snip>

-C, --directory DIR
       change to directory DIR

Використання за вашим прикладом:

$ tar xvzf archivename.tar.gz -C /tmp/testdir/ sampledir/

Також вам може бути цікаво знати, що сучасні версії tarне вимагають, щоб zпрапор розпаковував gzipped файли; вони помітять, що це - .gzі зробити правильну річ автоматично.


Спасибі. Смішно я спробував це, перш ніж розміщувати питання, і це не вдалося. Можливо, я пропустив варіант. Я спробую ще раз.
PeanutsMonkey

Блискучість. Я завжди забуваю про це для великих архівів.
zmonteca

3

Вам не потрібно грати в божевільні ігри, з якими все знімаєте. Tar повністю підтримує лише вилучення підмножини файлів в архіві, як показано в наступному (тривіальному) прикладі:

/tmp $ mkdir tarsrc
/tmp $ cd tarsrc
/tmp/tarsrc $ mkdir a b
/tmp/tarsrc $ touch a/aaa b/bbb
/tmp/tarsrc $ tar cf ../tartest.tar .
/tmp/tarsrc $ cd ..
/tmp $ mkdir tardest
/tmp $ cd tardest
/tmp/tardest $ tar xf ../tartest.tar ./a    
/tmp/tardest $ ls -R
.:
a/

./a:
aaa

Хитрість полягає в тому, що pathspec повинен точно відповідати вмісту tarfile. Отже, коли ви робите це tar tf, якщо шлях починається з ./, ви повинні вкласти це, і якщо його немає, ви повинні його залишити. Крім того, якщо ви хочете витягнути під-під-під-під-під-під-під-шлях, він закінчить N рівнів у файловій системі, коли закінчите.


Дякую убл. Можливо, це не правильний приклад для використання, але я порівнюю tar з Winzip, WinRAR і т. Д. І, можливо, tar - це неправильна команда, яку слід використовувати, однак бачачи, що я бачив приклад tar-файлу, який виконує перезапис файлів gzip та bzip, я сподівався, що зможу застосуйте аналогічний процес, наприклад, виберіть файл, який ви хочете відхилити від архіву (tar робить це) та виберіть шлях, який ви хотіли б витягти (tar не робить цього, якщо я не перебуваю у конкретному каталозі).
PeanutsMonkey

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