Para obtener un archivo zip nuevo al igual que lo hace tar, ¿debo realizarlo rm foo.zip
antes de ejecutarlo 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
un sari
fuente
fuente
-FS
no es-F
y-S
juntos. Esto ha estado allí desde zip 3.0 al menos. Compruebeman zip
.Zip 3.0
y no funcionaZip 2.32
(no eliminó los archivos antiguos en el paquete zip)-FS -r
verdad?Una alternativa al uso de la
-FS
opción (o eliminar el antiguo archivo ZIP), y literalmente sobrescribir el archivo ZIP existente, es solicitar lazip
salida a stdin y redirigir la salida al archivo de su elección:Si existe foo.zip, se sobrescribirá mediante la redirección de shell, lo que significa que obtendrá un nuevo archivo ZIP nuevo el 100% del tiempo, cada vez 🙂
fuente