-x
选项有点奇怪;您需要按照文件列表的顺序,以-x
开头,以@
符号结尾:
zip file.zip -r * -x dir1 dir2 file1 file2 @
我也严重怀疑你想在Unix系统中的文件名中使用
\
,请确保你的路径正确。通常情况下,
/
是路径分隔符。
例如:
mkdir tmp5
cd tmp5
touch a b c d e f g
zip foo.zip -r * -x e f g @
adding: a (stored 0%)
adding: b (stored 0%)
adding: c (stored 0%)
adding: d (stored 0%)
通过使用子目录,您可以轻松地使用通配符省略它们的内容,但看起来
*
导致包含目录本身(为空):
mkdir x y z
touch {a,b,c} {x,y,z}/{a,b,c}
zip foo.zip -r * -x c y y/* z z/* @
adding: a (stored 0%)
adding: b (stored 0%)
adding: x/ (stored 0%)
adding: x/b (stored 0%)
adding: x/a (stored 0%)
adding: x/c (stored 0%)
adding: y/ (stored 0%)
adding: z/ (stored 0%)
您最好省略
*
,并明确列出您想要包含的内容...
zip core-latest-$version.zip -r cp images include mobile stats \
-x cp/includes/configure.php @
(在结尾处的 \
只是继续到下一行;您可以将其全部放在一行上,而不需要尾随的 \
)