MacOSX では、*.zip は ab.zip と一致できず、ab.zip のみになります。どうすればこれを修正できますか?

MacOSX では、*.zip は ab.zip と一致できず、ab.zip のみになります。どうすればこれを修正できますか?

sh fizmyzip.sh現在のフォルダーの下にあるすべての zip ファイルから不要なファイルを削除するために実行しようとしていますfizmyzip.sh

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

a-b.zipしかし、と一致させることはできませんab.zip。 どうすればこれを修正できますか?

答え1

シェルは*.zipに展開されるab.zip a-b.zipので、コマンドは

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

フラグの後の引数には、ターゲット zip ファイルが 1 つだけ必要です-d。他の引数は、削除するファイル/パターンです。これが、 に対してのみ機能する理由ですab.zip

そこで for ループを使用します:

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

関連情報