Você tem os argumentos trocados. Tente o seguinte:
-d
--delete
Remova (exclua) entradas de um arquivo zip. Por exemplo:
zip -d foo foo/tom/junk foo/harry/\* \*.o
removerá a entrada foo/tom/junk
, todos os arquivos que começam com
foo/harry/
e todos os arquivos que terminam com .o
(em qualquer caminho). Observe que a expansão do nome do caminho do shell foi inibida com barras invertidas, para que o zip possa ver os asteriscos, permitindo que o zip corresponda ao conteúdo do arquivo zip em vez do conteúdo do diretório atual. (As barras invertidas não são usadas nas plataformas baseadas no MSDOS.) Também é possível usar aspas para escapar dos asteriscos, como em
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
Não escapar dos asteriscos em um sistema em que o shell expande curingas pode resultar na conversão dos asteriscos em uma lista de arquivos no diretório atual e na lista usada para excluir entradas do arquivo morto.
No MSDOS, -d diferencia maiúsculas de minúsculas quando corresponde aos nomes no arquivo zip . Isso requer que os nomes dos arquivos sejam inseridos em maiúsculas se foram compactados pelo PKZIP em um sistema MSDOS. (Consideramos tornar esse caso sem distinção de maiúsculas e minúsculas em sistemas onde os caminhos não diferenciam maiúsculas de minúsculas, mas é possível que o arquivo seja proveniente de um sistema em que o caso seja importante e o arquivo possa incluir ambos Bar
e bar
como arquivos separados no arquivo.) Mas veja a nova opção - ic para ignorar maiúsculas e minúsculas no arquivo.
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]