Попытка получить конкретную функциональность из zip
. Я хотел бы заархивировать все рекурсивно в определенном каталоге и сохранить структуру каталога в пределах только от этого каталога, но не иметь полный путь, являющийся частью архива.
Допустим, у меня есть /path/to/test/tmp/
и я хочу, чтобы все в tmp/
было заархивировано, как будто я запускаю команду из этой папки.
Флаг -r
получает то, что я хочу, но включает информацию о пути над каталогом, который мне нужен, в зависимости от того, где я его запускаю:
user@MBP:~/path/to/test$ zip -r myarchive.zip tmp/
adding: tmp/foo.txt (deflated 68%)
adding: tmp/bar/bar.txt (deflated 41%)
adding: tmp/baz/baz/baz.txt (deflated 92%)
Флаг -j
обрезает все, кроме имен файлов:
user@MBP:~/path/to/test$ zip -rj myarchive.zip tmp/
adding: foo.txt (deflated 68%)
adding: bar.txt (deflated 41%)
adding: baz.txt (deflated 92%)
Что мне нужно, это то, что даст мне это:
adding: foo.txt (deflated 68%)
adding: bar/bar.txt (deflated 41%)
adding: baz/baz/baz.txt (deflated 92%)
Но это я могу указать для запуска из любого места. Я пытаюсь написать это в cron. Я не могу найти то, что я ищу на странице руководства. Как я могу осуществить это, кроме фактического изменения каталогов в моем скрипте?