微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

shell脚本:使用管道作为tar的输入

我试图找出一种在ubuntu服务器LTS上使用tar管道的方法.

我有一个postgresql命令(pg_dump),它在标准输出输出很多sql

pg_dump -U myUser myDB

我知道如何重定向一个文件

pg_dump -U myUser myDB > myDB.sql

为了节省一些磁盘空间,我宁愿把它压缩:我可以从该myDB.sql一个tar.gz文件,然后删除myDB.sql.

但我想知道 – 有没有办法这样做,而不创建中间的.sql文件?我相信这可以用管道完成…但是我不是shell大师,对他们很少了解(我可以做ls |更多,这就是全部).我已经尝试过pg_dump .. |的几个变体tar …但没有成功.

如何使用管道将pg_dump的输出用作tar的输入?还是我刚刚搞错了?

我没有看到“焦油”这个数字呢?为什么不压缩转储文件本身?
pg_dump -U myUser myDB | gzip > myDB.sql.gz

然后,恢复:

gzip -cd myDB.sql.gz | pg_restore ...

“tar”实用程序用于将一堆文件和目录捆绑到一个文件中(名称是“磁带归档”的缩写).在这方面,“tar”文件就像一个“zip”文件,除了“zip”总是意味着压缩,而“tar”则没有.

请注意,“gzip”不是“zip”. “gzip”实用程序只是压缩;它不会做档案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐