You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用zip递归压缩文件但排除所有位置下指定名称的文件?

如何使用zip递归压缩文件但排除所有位置下指定名称的文件?

我完全懂你的需求啦——要递归压缩所有文件,但不管那个叫excludethisfile的文件出现在当前目录还是哪个子文件夹里,都得把它排除掉。你提到的那些类似问题(比如只排除单个子文件夹、按扩展名过滤)确实和你的场景不一样,咱们得用zip的专属参数来实现全目录精准匹配文件名排除的效果。

直接给你能用的命令:

zip -r output.zip . -x "**/excludethisfile"

我给你拆解一下每个部分的作用,方便你理解和调整:

  • -r:这个参数告诉zip要递归处理所有子目录,确保不会漏掉深层文件夹里的文件
  • output.zip:这是你最终要生成的压缩包文件名,你可以改成任何你想要的名字,比如my_archive.zip
  • .:指定要压缩的起始目录是当前目录,如果你想压缩某个特定文件夹,把.换成目标文件夹的路径就行,比如./my_project
  • -x "**/excludethisfile":这是实现排除的核心参数!**/表示匹配任意层级的目录(包括当前目录本身),后面跟你要排除的文件名,这样不管这个文件藏在哪个层级的目录里,都会被自动跳过,不会被加入压缩包

如果你担心不同shell的通配符差异,也可以用更稳妥的写法,同时覆盖当前目录和所有子目录的目标文件:

zip -r output.zip . -x "excludethisfile" "*/excludethisfile"

用这个命令处理你给出的文件结构时,所有otherfile系列文件都会被正常压缩,而各个目录下的excludethisfile都会被排除在外,完全符合你的要求~

备注:内容来源于stack exchange,提问作者gb-1957

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:53:03