我有以下要压缩的目录结构:
dir2zip
subdir1
file1.txt
subdir2
file2.txt
subdir3
file3.txt
我想排除
subdir3
,所以我使用如下命令行:
zip -r dir2zip.zip dir2zip -x "dir2zip/subdir3/*"
在提示符下执行此操作时,会收到以下正确输出:
manfred@altair:~/data$ zip -r dir2zip.zip dir2zip -x "dir2zip/subdir3/*"
adding: dir2zip/ (stored 0%)
adding: dir2zip/subdir2/ (stored 0%)
adding: dir2zip/subdir2/file2.txt (deflated 72%)
adding: dir2zip/subdir1/ (stored 0%)
adding: dir2zip/subdir1/file1.txt (deflated 68%)
但是当我在一个脚本中执行此操作时,参数由一个字符串组成,例如像这样:
manfred@altair:~/data$ zipvar="-r dir2zip.zip dir2zip -x \"dir2zip/subdir3/*\""
manfred@altair:~/data$ echo $zipvar
-r dir2zip.zip dir2zip -x "dir2zip/subdir3/*"
...我用这个变量作为参数执行 zip,然后输出是这样的:
manfred@altair:~/data$ zip $zipvar
adding: dir2zip/ (stored 0%)
adding: dir2zip/subdir3/ (stored 0%)
adding: dir2zip/subdir3/file3.txt (deflated 94%)
adding: dir2zip/subdir2/ (stored 0%)
adding: dir2zip/subdir2/file2.txt (deflated 72%)
adding: dir2zip/subdir1/ (stored 0%)
adding: dir2zip/subdir1/file1.txt (deflated 68%)
这里 zip 也确实压缩了
subdir3
,看起来当在变量中使用参数执行 zip 时,它会忽略其中的一些参数。
有人提示我如何将 zip 与脚本生成的参数一起使用到变量吗? 我不想在脚本中明确地写下我所有的 zip 命令,列表会太长而且太不灵活......