在一个命令行上使用 cat、tar 和 gzip 解压缩并解压缩 .tar.gz 文件

在一个命令行上使用 cat、tar 和 gzip 解压缩并解压缩 .tar.gz 文件

如何在一个命令行上使用 cat、tar 和 gzip 解压缩和解档 .tar.gz 文件?这可能吗?

答案1

不需要catgzip

$ tar xvzf archive.tar.gz

选项字符串指示以详细模式 ( )tar提取 ( ) 标志后面的压缩 ( ) 存档。xvzf

使用全部cat,tar gzip(这很愚蠢,不要这样做):

$ cat archive.tar.gz | gzip -d -c | tar xvf -

或者

$ gzip -d -c archive.tar.gz | cat | tar xvf -

-当作为文件名给出时,tar将从标准输入读取存档。

最后两个示例遭受了通常所说的“无用使用cat”的困扰,因为唯一cat要做的就是将数据洗牌到管道的下一部分。

一个稍微好一点的版本,没有cat

$ gzip -c -d archive.tar.gz | tar xvf -

实际上,了解如何在tar不知道如何处理压缩档案的系统上执行此操作可能是一件有用的事情。

我上面使用的古老选项字符串(前面tar没有破折号( ))来自破折号通常用于指定命令行选项之前的时间。-其他不使用常规选项语法的实用程序包括ddand mt,但是tar当今的大多数实现明白较新的破折号选项dd通常不会。该mt命令(控制磁带操作)已获得一些破折号选项(尤其是在 Linux 上),但命令行中唯一非可选的部分仍然是您要在驱动器上执行的命令,例如rewindeof

相关内容