2

这让我发疯,我只是想压缩一个文件夹,如:

tar -czvf app.tar.gz ./app/

显然它工作得很好,但https://npmjs.org/package/grunt-shell会产生损坏的 tar.gz:

shell: {
  deploy: {
    command: 'tar -czvf app.tar.gz ./app/'
  }
}

我已经尝试过https://npmjs.org/package/grunt-contrib-compress没有运气(我更喜欢使用 shell,因为压缩后我会用 tar.gz 做另一件事)。

我的堆栈:

OSX 10.8.3
节点 0.10.4
Grunt 0.4.1
grunt-shell 0.2.2
grunt-contrib-compress 0.5.0

感谢@hereandnow78 指出顺序问题!

如果你有:

shell: {
  deploy: {
    command: 'tar -cfvz app.tar.gz ./app/'
  }
},

然后它会为您提供一个名为“vz”(无扩展名)的 tar.gz 文件,其中包含正确的内容。

但是,如果你有:

shell: {
  deploy: {
    command: 'tar -czf app.tar.gz ./app/'
  }
},

然后它按预期工作......所以问题来自详细参数,也许它与使用标准输出获取详细信息有关?

真正令人讨厌的是,tar -czvf app.tar.gz ./app/在 grunt 任务之外工作得很好。

有人可以澄清一下吗?

4

1 回答 1

2

tar 选项的顺序应该很重要

按以下顺序尝试:

-cfvz

意思是:

- c: create
- f: a file
- v: verbose
- z: additionally compress with gzip
于 2013-05-21T09:22:44.960 回答