TAR与CPIO归档文件格式有什么区别?

Modified on: Fri, 09 Nov 2018 08:40:03 +0800

我很好奇并做了一些阅读但仍有疑问。

是什么让CPIO与TAR不同?我在另一个问题中被告知,tar用于将多个文件合并到一个存档中,然后通常是gzip或bzip'd。

我还被告知TAR无法从STDOUT压缩。我想归档/压缩ZFS快照以进行备份。我想知道我是否可以将CPIO与bzip2结合起来以获得这种效果。

或者我有完全错误的想法?这不是CPIO的目的吗?

这是我在阅读之后提出的一种命令,因此Oracle文档备份了ZFS快照。

# Backup snapshot to cpio and bzip2 archive
zfs send media/mypictures@20070607 | cpio -o | bzip2 -9c > ~/backups/20070607.bz2

# Restore snapshot from cpio and bzip2 archive
zfs recieve media/mypictures@20070607 | cpio -i | bunzip2 -c ~/backups/20070607.bz2

最佳答案

tarcpio都有一个目的:将许多单独的文件连接到单个流。他们不压缩数据。 (这些天tar因其相对简单而更受欢迎 - 它可以将输入文件作为参数,而不必与find结合为cpio有。)

在您的情况下,您不需要这些工具;它们没有任何有用的效果,因为你没有许多单独的文件。 zfs send已经完成了与tar相同的事情。所以你没有任何文件,只是一个无名流。

要压缩快照,您所要做的就是通过压缩程序管道zfs输出:

zfs send media/mypictures@20070607 | gzip -c > ~/backups/20070607.gz

gzip -dc ~/backups/20070607.gz | zfs receive media/mypictures@20070607

(如果需要,您可以将gzip替换为xzbzip2或任何其他流压缩工具。)


相关问答

添加新评论