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

压缩Project文件夹时如何排除node_modules除mydir外的所有内容?

解决zip压缩时保留node_modules指定子目录的问题

问题分析

你之前使用的zip -r project.zip Project/ -x Project/node_modules/*会把node_modules下所有直接子项(包括mydir)一并排除——因为通配符*匹配了该目录下的所有内容,最终导致整个node_modules目录都未被压缩。

高效解决方案

不需要逐个排除node_modules下的其他子目录,以下两种单次压缩的方法就能满足需求:

方法1:利用bash扩展匹配(extglob)

先开启bash的扩展匹配功能(默认可能未开启),然后一次性排除node_modules下除mydir外的所有内容:

# 开启扩展匹配
shopt -s extglob
# 执行压缩
zip -r project.zip Project/ -x "Project/node_modules/!(mydir)"

!(mydir)是bash扩展匹配语法,表示“除了mydir之外的所有内容”,能精准保留node_modules/mydir及其内容,排除其他子目录和文件。

方法2:结合-x和-i参数

先排除node_modules下的所有内容,再强制包含mydir及其所有子项:

zip -r project.zip Project/ -x "Project/node_modules/*" -i "Project/node_modules/mydir/**"

**用于匹配mydir下的所有层级文件和子目录,确保整个mydir的目录结构都被正确包含进压缩包。

注意事项

  • 方法1仅适用于bash环境,zsh等其他shell的扩展匹配语法可能不同;
  • 命令中的路径需与实际目录结构对应,避免因路径错误导致匹配失败。

内容的提问来源于stack exchange,提问作者hawe25

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:06:13