在 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

shell 扩展*.zipab.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

相关内容