如何在一个命令行上使用 cat、tar 和 gzip 解压缩和解档 .tar.gz 文件?这可能吗?
答案1
不需要cat
或gzip
:
$ tar xvzf archive.tar.gz
选项字符串指示以详细模式 ( )tar
提取 ( ) 标志后面的压缩 ( ) 存档。x
v
z
f
使用全部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
没有破折号( ))来自破折号通常用于指定命令行选项之前的时间。-
其他不使用常规选项语法的实用程序包括dd
and mt
,但是tar
当今的大多数实现明白较新的破折号选项dd
通常不会。该mt
命令(控制磁带操作)已获得一些破折号选项(尤其是在 Linux 上),但命令行中唯一非可选的部分仍然是您要在驱动器上执行的命令,例如rewind
或eof
。