如何排除目录并压缩目录的文件?

如何排除目录并压缩目录的文件?

我需要压缩一个目录,不包括一些子目录和文件;我使用了这个:

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*"

相关内容