TAR или ZIP текущий каталог, исключая сгенерированный файл
1031
Ion Bazan
Я пытаюсь сжать или сжать все файлы и подкаталоги в текущем каталоге и сохранить его в файл, который я заархивирую. Проблема в том, что -x shitch не работает - файлы архивируются и сохраняются в файл с произвольным именем.
zip -r backup.zip ./* -x backup.zip
Это то, что я пытался, но код не работал должным образом.
Есть ли способ сделать это, не сохраняя каталог архива .. и затем перемещая его обратно в ./ dir?
Заранее спасибо.
2 ответа на вопрос
0
l0b0
./*раскрывается оболочкой перед отправкой в команду, поэтому единственный способ zipпопытаться включить backup.zipэто, если она существует до запуска команды.
tar может сделать это:
$ cd -- "$(mktemp -d)" $ touch -- $'--$`!*@\a\b\E\f\r\t\v\\\'"\360\240\202\211 \n' $ tar -czf test.tar.gz ./* $ ls --$`!*@???????\'" ? test.tar.gz $ tar -tvf test.tar.gz -rw-rw-r-- user/group 0 2013-06-26 14:38 ./--$`!*@\a\b\033\f\r\t\v\\'" \n
0
diablo
Zip не будет пытаться заархивировать свой собственный файл, поэтому вам не нужно использовать -x. Предполагая, что backup.zip уже существует в текущем каталоге, и мы пытаемся обновить zip: