Shell zip 压缩文件或文件夹
基本用法
-
压缩一个文件📃
zip demo.zip demo.txt
-
压缩一个文件夹📁
使用-r
选项。
假设当前目录下有个“work”文件夹,
举例:zip -r work.zip work
压缩时排除文件或文件夹
自定义排除文件/文件夹,使用 -x
选项(小写的 x)
排除文件夹
还是以“work”文件夹举例,
-
假设要排除 work 根路径下的“node_modules”文件夹,
zip -r work.zip work -x "/node_modules/*"
-
要排除 work 路径下所有的“node_modules”文件夹,包括 work 的子目录里的。
zip -r work.zip work -x "*/node_modules/*"
-
排除名称以“
_
”开头的文件夹
合理使用通配符“*
”,
zip -r work.zip work -x "*/_*/*"
以“_
”开头的文件不会被排除
排除文件
-
排除根目录下的单个文件
例如要排除“foo.tmp”,
zip -r work.zip work -x foo.tmp
-
排除所有非必要的 Mac 资源/系统文件
例如 “_MACOSX”、 “.DS_Store” 文件,
zip -r work.zip work -x "*/_MACOSX" -x "*/.DS_Store"
-
排除所有后缀名为“.tmp” 的文件
zip -r work.zip work -x "*/*.tmp"
-
排除文件名以“
_
”开头的所有文件
zip -r work.zip work -x "*/_*"
⚠️注意:以“_
”开头的子文件夹也会被排除
排除规则很多?
可以把排除规则放在一个文件里,例如“exclude.lst”,每行一个,不要用""
引号。例如:
exclude.lst 文件内容:
*/_MACOSX
*/.DS_Store
*/node_modules/*
*/_*/*
命令:zip -r work.zip work [email protected]
只压缩指定的文件/文件夹
使用 -i
选项(include)
更多命令参考: https://ss64.com/osx/zip.html