Як створити архів дьогтю в іншому каталозі?


39

Я хочу створити файл архіву tar в іншому каталозі, а не в поточному каталозі.

Я спробував цю команду:

tar czf file.tar.gz file1 -C /var/www/

але він створює архів у поточному каталозі. Чому?


3
Ви, здається, неправильно зрозуміли значення -C(що не дивно, як його неясно задокументовано). Докладніше див. Сервер default.com/q/416002/86283 .
NN

Відповіді:


48

Найпростіший спосіб, якщо вам особливо не потрібно використовувати, -Cщоб сказати, tarщоб змінити якийсь інший каталог, - просто вказати повний шлях до архіву в командному рядку. Тоді ви можете знаходитись у будь-якому каталозі, який ви віддаєте перевагу, щоб створити структуру каталогів, яку ви хочете всередині архіву.

Далі буде створено архів /var/www/file.tar.gzі поміщено file1з поточної директорії (що б там не було) в нього, без інформації про шлях до архіву.

tar czf /var/www/file.tar.gz file1

Шлях (до архіву, до складових файлів, або до обох), звичайно, також може бути відносним. Якщо ви file1перебуваєте в /tmp, ви перебуваєте /var/spoolі хочете створити архів /var/www, ви можете використовувати щось на кшталт:

tar czf ../www/file1.tar.gz /tmp/file1

Мільйон варіацій на тему, але це має розпочати. Додайте vпрапор, якщо хочете побачити, що tarнасправді робить.


1
Ви також можете використовувати відносний шлях.
NN

@NN Абсолютно, але оскільки ми не маємо уявлення, що $PWDце таке, здавалося, найбезпечніше використовувати абсолютний шлях у прикладі.
CVn

Дійсно, я хоч і мав сенс включити це, щоб показати, що це доступний варіант вирішення проблеми.
NN

Таким чином, шлях file1до архіву дьогтю буде /tmp. Це може бути або не бути тим, що ви очікуєте.
mouviciel

8

Я перетворюю стислі дані в потік (-) і легко перейменую та знаходжу (>), де я вибираю (Також я завжди орієнтуюся на відносний шлях (./), так що з ним легше розібратися при розтисканні)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

Це не допомагає окремим файлам і -Cнабагато ідіоматичніше (і коротше).
Махмуд Аль-Кудсі

3

Я думаю, це має бути:
tar czf file.tar.gz -C /var/www/ file1

Що працює для мене. Він повідомляє змінити каталог, а потім вибрати файл.


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