在 Windows,我一直使用 7-Zip 压缩文件,压缩格式则常常选择比较通用的 zip。那么 7-Zip 怎么在压缩时排除特定的文件夹,使其不包括在内呢?最近需要用到,在此记录一下。
最近使用 npm 比较多,安装相关依赖的模块很方便,但在项目目录下会有个 node_modules
文件夹,里面随随便便就会有超多的文件。有些时候需要压缩打包项目文件夹时,就不希望把它也包括在内了,且若不排除它,压缩时可能还会出错。既不想在项目目录下压缩,总不能压缩时都把它给删了。
也许看看压缩工具,能否在压缩时排除掉,是比较方便的解决方法。在 7-Zip GUI 工具下,并没有找到相关的设置。查看帮助文件,找到了命令行版本有个相关的 switch ‘-x’ (Exclude filenames)[1]。
语法看着不大明白,但对照例子,照葫芦画瓢总该可以。压缩文件时,排除特定目录的解决方法如下:
例如当前目录下有 foo 这个目录,其结构是这样的
$ tree
.
`-- foo
|-- bar
| `-- hello.txt
| `-- world.txt
`-- hello.txt
2 directories, 3 files
排除 bar 目录,则
7z a foo.7z foo -x!foo\bar
排除 foo/hello.txt 文件,则
7z a foo.7z foo -x!foo\hello.txt
排除所有 hello.txt 文件,则
7z a foo.7z foo -xr!hello.txt
排除所有 txt 文件,则
7z a foo.7z foo -xr!*.txt
排除所有目录文件,则
7z a foo.7z foo -xr!*
所用到的另外一个参数是递归 -r[2]。
以上前提是把 7-Zip 的安装目录扔到系统环境变量。
参考资料
本文历史
- 2017 年 06 月 23 日 完成初稿
- 2018 年 08 月 24 日 完善例子
最近更新
猜你喜欢
与本文不相关的留言,请发留言本谢谢。