
Ich versuche, sh fizmyzip.sh
einige unnötige Dateien aus allen ZIP-Dateien in meinem aktuellen Ordner zu entfernen. fizmyzip.sh
lautet:
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 *.zip
zu 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 -d
Flag 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