Відповіді:
Найпростіший спосіб, якщо вам особливо не потрібно використовувати, -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
насправді робить.
$PWD
це таке, здавалося, найбезпечніше використовувати абсолютний шлях у прикладі.
file1
до архіву дьогтю буде /tmp
. Це може бути або не бути тим, що ви очікуєте.
Я перетворюю стислі дані в потік (-) і легко перейменую та знаходжу (>), де я вибираю (Також я завжди орієнтуюся на відносний шлях (./), так що з ним легше розібратися при розтисканні)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
набагато ідіоматичніше (і коротше).
Я думаю, це має бути:
tar czf file.tar.gz -C /var/www/ file1
Що працює для мене. Він повідомляє змінити каталог, а потім вибрати файл.
-C
(що не дивно, як його неясно задокументовано). Докладніше див. Сервер default.com/q/416002/86283 .