Ви хочете створити файл смоли далеко від місця, в якому знаходяться файли, потрібні для tar.
Є багато способів зробити це.
Якщо його потрібно створити локально (= на одній машині):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
Ви можете додати додаткові файли або каталоги, щоб позначити tar в кінці цієї команди.
Якщо його потрібно створити віддалено (тобто, ви бажаєте створити файл tar на віддаленому хості з того, що містить дані, які слід розміщувати):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
Пізніша версія дуже універсальна. Наприклад, ви також можете "копіювати" каталог + підкаталоги, використовуючи ту саму техніку:
Скопіюйте каталог + підкаталоги в інший локальний каталог:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
Скопіюйте каталог + підкаталоги до іншого віддаленого каталогу:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
Відкиньте "v", якщо вам він не потрібен, щоб відображати файли в мірі позначення (або без позначення): воно піде набагато швидше, але не скаже багато, якщо не буде помилки.
Я використовую ". / ..." для джерела, щоб змусити дьоготь зберігати його як ПОВ'ЯЗНИЙ шлях. У деяких випадках потрібно додати додаткову інформацію про шлях:
Наприклад, для націлювання на файли crontab, включаючи файл в / etc, ви можете зробити:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
Я спеціально використовую відносний шлях: деякі СТАРІ версії tar можуть бути небезпечними та витягувати файли з оригінальним шляхом GLOBAL, тобто ви можете це зробити: cd /safedir ; tar xvf sometar
і файли з глобальними іменами перезаписують файли за їх початковим шляхом, який є ВІД / safedir а не під ним! Дуже небезпечно і все ще можливо, оскільки там є старі сервери виробництва. Краще використовувати весь час відносні шляхи, навіть якщо ви використовуєте більш пізній тар.
cd /opt; tar zcf $HOME/junk.tar.gz junk
.