linux中用zip排除文件压缩需用-x参数配合引号包裹通配符,如zip -r a.zip dir/ -x "*.log";排除目录须带/*,批量排除可用-@ exclude.txt;注意路径相对归档根目录且勿漏引号。

排除指定后缀的文件(比如 .log、.tmp)
最常用也最稳妥的方式:用双引号包裹通配符表达式,避免 shell 提前展开。
-
排除所有 .log 文件:
zip -r archive.zip mydir/ -x "*.log" -
同时排除 .log 和 .tmp:
zip -r archive.zip mydir/ -x "*.log" "*.tmp" -
排除某目录下的临时文件:
zip -r archive.zip mydir/ -x "mydir/cache/*" "mydir/tmp/*"
排除整个子目录
要跳过某个子目录(含其下所有内容),需明确写出路径,并确保匹配完整路径结构。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
排除 ./src/node_modules/ 目录:
zip -r archive.zip . -x "src/node_modules/*" -
排除多级目录(如 build/ 和 dist/):
zip -r archive.zip . -x "build/*" "dist/*" ".git/*" - 注意:
-x "node_modules"不生效,必须带/*或完整路径前缀
用排除列表文件批量管理
当要排除的项较多或规则复杂时,把路径写进文本文件更清晰、易维护。
- 新建
exclude.txt,每行一个排除项(不加引号,但路径需完整):node_modules/*<br>cache/*<br>*.DS_Store<br>.git/*
- 执行命令:
zip -r archive.zip myproject/ -@ exclude.txt -
-@表示从标准输入读取排除列表,配合文件使用很可靠
常见错误和避坑提醒
很多报错其实源于 shell 解析或路径匹配逻辑没理清。
-
别漏引号:写成
zip -r a.zip dir/ -x *.log会报错或误匹配——shell 先展开*.log成当前目录下存在的 .log 文件,而不是让 zip 去目标目录里找 -
路径要相对归档根目录:比如压缩
./app/,那-x "app/logs/*"才有效;写成"logs/*"可能不匹配 -
区分 -x 和 -n:
-n是“不压缩”某些后缀(仍会记录空条目),而-x是彻底跳过——日常推荐用-x










