Чтобы получить новый zip-файл, как это делает tar, мне нужно выполнить rm foo.zip
перед выполнением zip
?
$ mkdir foo; touch foo/bar
$ zip -r foo.zip foo
adding: foo/ (stored 0%)
adding: foo/bar (stored 0%)
$ rm foo/bar; touch foo/baz
$ zip -r foo.zip foo
adding: foo/ (stored 0%)
adding: foo/baz (stored 0%)
$ unzip -l foo.zip
Archive: foo.zip
Length Date Time Name
--------- ---------- ----- ----
0 2011-10-27 07:49 foo/
0 2011-10-27 07:49 foo/bar
0 2011-10-27 07:49 foo/baz
--------- -------
0 3 files
command-line
zip
азари
источник
источник
-FS
нет-F
и-S
вместе. Это было там с zip 3.0 по крайней мере. Проверьтеman zip
.Zip 3.0
и не работаетZip 2.32
(не удалял старые файлы в zip-пакете)-FS -r
, верно?Альтернативой использованию
-FS
опции (или удалению старого ZIP-файла) и буквальной перезаписи существующего ZIP-файла является запросzip
вывода в stdin и перенаправление вывода в файл по вашему выбору:Если файл foo.zip существует, он будет перезаписан перенаправлением оболочки, что означает, что вы будете получать новый новый файл ZIP в 100% случаев каждый раз,
источник