如何排除目录和文件压缩目录?

arp*_*pho 55 zip

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

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"
Run Code Online (Sandbox Code Playgroud)

没有任何成功;node_modules是主体中的一个文件夹,而bower_components在文件夹应用程序中

D-E*_*E-N 55

我只是猜测你想要什么。

-x ".*"
Run Code Online (Sandbox Code Playgroud)

排除所有以点开头的文件

这样做:

-x .\*
Run Code Online (Sandbox Code Playgroud)

排除所有文件(文件名中有一个点)

这样做:

-x \*.\*
Run Code Online (Sandbox Code Playgroud)

——

-x "app/bower_components" -x "node_modules"
Run Code Online (Sandbox Code Playgroud)

排除此目录及其中的所有文件

这样做:

-x app/bower_components/\* -x node_modules/\*
Run Code Online (Sandbox Code Playgroud)

——

-x "*.zip"
Run Code Online (Sandbox Code Playgroud)

排除所有 zip 文件

这样做:

-x \*.zip
Run Code Online (Sandbox Code Playgroud)

您两次排除 node_modules

  • 谢谢我明白了,使用各种帖子到达:zip -r * app/* -x\app/bower_components/* -x\node_modules/* -x\*.zip (2认同)

Jak*_*kul 18

假设您的目录是一个 git 存储库(从问题来看,很可能是),您可以将要排除的目录添加到.gitignore文件中,并使用git archive命令来压缩目录的内容:

git archive --format=zip HEAD -o zipfile.zip
Run Code Online (Sandbox Code Playgroud)

在您的示例中,.gitignore文件必须如下所示:

node_modules
app/bower_components
Run Code Online (Sandbox Code Playgroud)


Mik*_*iLL 12

像这样的事情应该可以解决问题:

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*
Run Code Online (Sandbox Code Playgroud)

以下-x是要排除的目录和文件(扩展名)类型的列表。


小智 10

排除所有文件夹中的所有 node_modules 文件夹。

zip -r node.zip . -x "**/node_modules/*"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。这是唯一真正有效的答案。 (4认同)