Tienes los argumentos intercambiados. Prueba esto:
-d
--delete
Eliminar (eliminar) entradas de un archivo zip. Por ejemplo:
zip -d foo foo/tom/junk foo/harry/\* \*.o
eliminará la entrada foo/tom/junk
, todos los archivos que comienzan con
foo/harry/
y todos los archivos que terminan con .o
(en cualquier ruta). Tenga en cuenta que la expansión del nombre de ruta del shell se ha inhibido con barras diagonales inversas, de modo que zip puede ver los asteriscos, lo que permite que zip coincida con el contenido del archivo zip en lugar del contenido del directorio actual. (Las barras invertidas no se usan en plataformas basadas en MSDOS). También se pueden usar comillas para escapar de los asteriscos como en
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
No escapar de los asteriscos en un sistema donde el shell expande comodines podría resultar en que los asteriscos se conviertan en una lista de archivos en el directorio actual y esa lista se use para eliminar entradas del archivo.
En MSDOS, -d distingue entre mayúsculas y minúsculas cuando coincide con los nombres en el archivo zip . Esto requiere que los nombres de los archivos se ingresen en mayúsculas si PKZIP los comprimió en un sistema MSDOS. (Consideramos hacer que este caso sea insensible en los sistemas donde las rutas no distinguen entre mayúsculas y minúsculas, pero es posible que el archivo provenga de un sistema en el que el caso sí importa y el archivo podría incluir ambos Bar
y bar
como archivos separados en el archivo). Pero vea la nueva opción : ic para ignorar mayúsculas y minúsculas en el archivo.
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]