
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