J'ai une archive Zip (créée automatiquement dans un script avec des indicateurs -j -r
) et je souhaite supprimer un seul fichier de celle-ci. J'ai essayé comme documenté.
Zip -d "picture_43_9.jpg" gallery.Zip
mais j'obtiens cette erreur:
Zip warning: picture_43_9.jpg not found or empty
Zip error: Nothing to do! (picture_43_9.jpg)
Quoi qu'il en soit, il y a est un tel fichier dans l'archive et il n'est pas vide:
unzip -l .../gallery.Zip | grep -i 43_9.jpg
1477092 2013-05-22 14:23 picture_43_9.jpg
Des idées sur ce que je fais mal?
Vous avez les arguments échangés. Essaye ça:
Zip -d gallery.Zip "picture_43_9.jpg"
De la page Zip (1) man:
-d
--delete
Supprimer (supprimer) des entrées d’une archive Zip. Par exemple:
Zip -d foo foo/tom/junk foo/harry/\* \*.o
supprime l'entrée
foo/tom/junk
, tous les fichiers commençant parfoo/harry/
et tous les fichiers se terminant par.o
(quel que soit le chemin d'accès). Notez que l’extension du nom de chemin du shell a été inhibée avec des barres obliques inverses afin que Zip puisse voir les astérisques, ce qui permet à Zip de correspondre au contenu de l’archive Zip au lieu de le contenu du répertoire en cours. (Les barres obliques inverses ne sont pas utilisées sur les plates-formes MSDOS.) Peut également utiliser des guillemets pour échapper aux astérisques comme dans
Zip -d foo foo/tom/junk "foo/harry/*" "*.o"
Si vous n'échappez pas aux astérisques sur un système où Shell développe des caractères génériques, les astérisques sont convertis en une liste de fichiers dans le répertoire en cours et cette liste est utilisée pour supprimer des entrées de l'archive.
Sous MSDOS, -d est sensible à la casse lorsqu'il correspond aux noms figurant dans l'archive Zip. Cela nécessite que les noms de fichiers soient entrés en majuscules s'ils ont été compressés par PKZIP sur un système MSDOS. (Nous avons envisagé de rendre cette casse non sensible sur les systèmes où les chemins d'accès étaient insensibles à la casse, mais il est possible que l'archive provienne d'un système où la casse est importante et qu'elle pourrait inclure les deux
Bar
etbar
sous forme de fichiers séparés dans l’archive.) Mais voyez la nouvelle option -ic pour ignorer la casse dans l’archive.