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

前端之家收集整理的这篇文章主要介绍了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”实用程序只是压缩;它不会做档案.

猜你在找的Bash相关文章