Pour obtenir un nouveau fichier zip comme le fait tar, dois-je effectuer rm foo.zip
avant d'exécuter 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
la source
la source
-FS
pas-F
et-S
ensemble. Cela existe depuis zip 3.0 au moins. Vérifiezman zip
.Zip 3.0
et ne fonctionne pasZip 2.32
(n'a pas supprimé les anciens fichiers du pack zip)-FS -r
, non?Une alternative à l'utilisation de l'
-FS
option (ou à la suppression de l'ancien fichier ZIP), et écraser littéralement le fichier ZIP existant, consiste à demanderzip
à sortir vers stdin et à rediriger la sortie vers le fichier de votre choix:Si foo.zip existe, il sera écrasé par la redirection du shell, ce qui signifie que vous obtiendrez un nouveau fichier ZIP neuf 100% du temps, à chaque fois 🙂
la source