No MacOSX, *.zip não pode corresponder a ab.zip apenas ab.zip, como posso corrigir isso?

No MacOSX, *.zip não pode corresponder a ab.zip apenas ab.zip, como posso corrigir isso?

Tento executar sh fizmyzip.shpara remover alguns arquivos desnecessários de todos os arquivos zip da minha pasta atual. fizmyzip.shé:

zip -d *.zip __MACOSX/\*
zip -d *.zip "*/.DS_Store"

No entanto, não pode corresponder a-b.zipapenas a ab.zip. Como posso consertar isso?

Responder1

O shell se expande *.zippara ab.zip a-b.zip, então os comandos se tornam

zip -d ab.zip a-b.zip __MACOSX/\*
zip -d ab.zip a-b.zip "*/.DS_Store"

Deve haver apenas um arquivo zip de destino no argumento após o -dsinalizador. Os outros argumentos são os arquivos/padrões a serem excluídos. É por isso que só funciona para ab.zip.

Então use um loop for:

for zipf in *.zip; do zip -d "$zipf" "__MACOSX/*" "*/.DS_Store"; done

informação relacionada