En MacOSX, *.zip no puede coincidir con ab.zip solo con ab.zip, ¿cómo puedo solucionar este problema?

En MacOSX, *.zip no puede coincidir con ab.zip solo con ab.zip, ¿cómo puedo solucionar este problema?

Intento ejecutar sh fizmyzip.shpara eliminar algunos archivos innecesarios de todos los archivos zip en mi carpeta actual. fizmyzip.shes:

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

Sin embargo, no puede coincidir a-b.zip, simplemente ab.zip. ¿Cómo puedo arreglar esto?

Respuesta1

El shell se expande *.zipa ab.zip a-b.zip, por lo que los comandos se convierten en

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

Sólo debe haber un archivo zip de destino en el argumento después de la -dbandera. Los otros argumentos son los archivos/patrones que se eliminarán. Por eso solo funciona para ab.zip.

Entonces usa un bucle for:

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

información relacionada