当从变量构造文件名时,如何让`zip`添加.zip扩展名

时间:2016-10-07 23:39:11

标签: bash zip

如果我跑......

$ myTest="bar"
$ zip -r foo-${myTest} path/*

...然后我得到一个名为foo-bar.zip的zip文件。 (注意.zip扩展名!)但是,如果我跑...

$ myTest="1.0.1"
$ zip -r foo-${myTest} path/*

...然后我得到一个名为foo-1.0.1的zip文件。 (没有.zip分机!)

我显然可以在我的脚本中添加.zip,但我想了解这里发生了什么。为什么zip在从包含数字的变量构建文件名时不添加扩展名?

1 个答案:

答案 0 :(得分:0)

当我写下最后一个问题时,我突然意识到这与数字无关。引自man zip

  

如果zip存档的名称不包含扩展名,则添加扩展名.zip。如果名称已包含.zip以外的扩展名,则现有扩展名保持不变。但是,拆分存档(存档分为多个文件)在最后一次拆分时需要.zip扩展名。

问题是我在变量中有.zip解释为文件扩展名。幸运的是,我的脚本使用.构造变量,因此我可以放心地将.zip添加到最后。否则,我需要测试.以正确命名文件。