TAR или ZIP текущий каталог, исключая сгенерированный файл

1031
Ion Bazan

Я пытаюсь сжать или сжать все файлы и подкаталоги в текущем каталоге и сохранить его в файл, который я заархивирую. Проблема в том, что -x shitch не работает - файлы архивируются и сохраняются в файл с произвольным именем.

zip -r backup.zip ./* -x backup.zip 

Это то, что я пытался, но код не работал должным образом.

Есть ли способ сделать это, не сохраняя каталог архива .. и затем перемещая его обратно в ./ dir?

Заранее спасибо.

0

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:

# zip -r backup.zip ./* updating: libproxychains4.so (deflated 61%) updating: README (deflated 55%) updating: TODO (deflated 17%) updating: COPYING (deflated 62%) updating: src/ (stored 0%) updating: src/proxychains (deflated 65%) updating: src/core.c (deflated 70%) updating: src/common.o (deflated 68%) updating: src/core.o (deflated 66%) updating: src/main.c (deflated 58%) updating: src/core.h (deflated 66%) updating: src/libproxychains.c (deflated 69%) updating: src/proxyresolv (deflated 30%) updating: src/main.o (deflated 67%) updating: src/libproxychains.o (deflated 70%) updating: src/common.h (deflated 55%) updating: src/proxychains.conf (deflated 57%) updating: src/common.c (deflated 62%) updating: proxychains.lsm (deflated 28%) updating: configure (deflated 65%) updating: AUTHORS (deflated 45%) updating: dist/ (stored 0%) updating: dist/config.mak (deflated 43%) updating: ChangeLog (deflated 66%) updating: config.mak (deflated 37%) updating: proxychains4 (deflated 62%) updating: tests/ (stored 0%) updating: tests/test_getaddrinfo.c (deflated 51%) updating: Makefile (deflated 58%) 

Используйте -x, если вам действительно нужно исключить файл из резервной копии.

Похожие вопросы