我尝试运行sh fizmyzip.sh
以从当前文件夹下的所有 zip 文件中删除一些不必要的文件。fizmyzip.sh
是:
zip -d *.zip __MACOSX/\*
zip -d *.zip "*/.DS_Store"
然而,它不能匹配a-b.zip
,只是ab.zip
。我怎样才能解决这个问题?
答案1
shell 扩展*.zip
为ab.zip a-b.zip
,因此命令变为
zip -d ab.zip a-b.zip __MACOSX/\*
zip -d ab.zip a-b.zip "*/.DS_Store"
标志后面的参数中应该只有一个目标 zip 文件-d
。其他参数是要删除的文件/模式。这就是为什么它只适用于ab.zip
.
所以使用 for 循环:
for zipf in *.zip; do zip -d "$zipf" "__MACOSX/*" "*/.DS_Store"; done