Unter MacOSX kann *.zip nicht mit ab.zip, sondern nur mit ab.zip übereinstimmen. Wie kann ich das beheben?

Unter MacOSX kann *.zip nicht mit ab.zip, sondern nur mit ab.zip übereinstimmen. Wie kann ich das beheben?

Ich versuche, sh fizmyzip.sheinige unnötige Dateien aus allen ZIP-Dateien in meinem aktuellen Ordner zu entfernen. fizmyzip.shlautet:

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

Es kann jedoch nicht mit übereinstimmen a-b.zip, sondern nur mit ab.zip. Wie kann ich das beheben?

Antwort1

Die Shell wird *.zipzu erweitert ab.zip a-b.zip, sodass die Befehle zu

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

Im Argument nach dem -dFlag sollte nur eine Ziel-ZIP-Datei stehen. Die anderen Argumente sind die zu löschenden Dateien/Muster. Deshalb funktioniert es nur für ab.zip.

Verwenden Sie also eine for-Schleife:

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

verwandte Informationen