shell - 在 Grunt 上压缩为 tar.gz

标签 shell gzip tar gruntjs

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

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
咕噜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/'
  }
},

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

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

有人可以澄清一下吗?

最佳答案

tar 选项的顺序应该很重要

按以下顺序尝试:

-cfvz

这意味着:

- c: create
- f: a file
- v: verbose
- z: additionally compress with gzip

关于shell - 在 Grunt 上压缩为 tar.gz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16623762/

相关文章:

performance - 将大量带有 Guid ID 的对象传输到客户端

linux - 如何在 Unix 中比较两个 zip 格式(.tar、.gz、.Z)文件

linux - 使用 grep -lr 输出将文件添加到 tar

linux - Tar 并将结果直接保存到 SSH 目录

Python tarfile 进度输出?

module - Nginx gzip 过滤器不适用于我的自定义处理程序

linux - 如何在shell脚本中获取二进制执行结果?

linux - 在邮寄过程中通过 shell 脚本将 csv 转换为 Excel

parsing - 一种简单的方法来区分日志文件,忽略时间戳?

macos - 在与 shell 脚本相同的目录中创建文件夹