我正在尝试使用 Mac OS X 终端附带的命令行工具创建一个 ZIP 文件zip
。我想递归压缩当前文件夹的内容但不包含.DS_Store
文件。我正在尝试这样做:
zip -r myarchive.zip . -x .DS_Store
排除当前文件夹中的文件,但不排除递归添加的子文件夹中的文件。如何同时排除所有子文件夹中的所有-x .DS_Store
文件?.DS_Store
.DS_Store
答案1
在排除选项中添加通配符
zip -r myarchive.zip . -x "*.DS_Store"
答案2
大多数时候我想排除全部隐藏文件,例如.DS_Store
或.git
或.gitignore
使用一个简单的命令,您可以处理所有这些,并以递归方式压缩所有文件和子文件夹:
zip -r archive.zip folder -x "*/\.*"
如果档案已经存在,上述命令将覆盖现有文件并将新文件添加到档案中。
如果您想完全替换档案,您将需要以下命令:
zip -FSr archive.zip folder -x "*/\.*"
或者更好的是,在 zsh 中创建一个函数以使生活更轻松
open ~/.zshrc
在别名部分添加以下代码
function zip-visible(){
zip -FSr $1 $2 -X -x "*/\.*"
}
重新加载 zsh 配置
source ~/.zshrc
像这样使用
zip-visible archive.zip folder