我需要压缩一个目录,不包括一些子目录和文件;我使用了这个:
zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"
没有任何成功;node_modules
是主文件夹中的一个文件夹,而bower_components
位于文件夹应用程序内
答案1
我只是猜测一下你想要什么。
-x ".*"
排除所有以点开头的文件
像这样:
-x .\*
排除所有文件(文件名中带有点)
像这样:
-x \*.\*
--
-x "app/bower_components" -x "node_modules"
排除该目录和其中的所有文件
像这样:
-x app/bower_components/\* -x node_modules/\*
--
-x "*.zip"
排除所有 zip 文件
像这样:
-x \*.zip
你排除了两次 node_modules
答案2
排除所有文件夹中的所有 node_modules 文件夹。
zip -r node.zip . -x "**/node_modules/*"
答案3
假设您的目录是一个 git 存储库(根据问题判断,很有可能是),您可以将要排除的目录添加到文件中.gitignore
,然后使用该git archive
命令压缩目录的内容:
git archive --format=zip HEAD -o zipfile.zip
在您的示例中,该.gitignore
文件必须如下所示:
node_modules
app/bower_components
答案4
这对我来说在 Ubuntu 16.04 上非常有效:
sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"