我偶尔会遇到这种提取“tarball”文件的模式:
zcat < some-archive.tar.gz | tar xf -
除了明显的语法之外,这与
tar -xf some-archive.tar.gz
有什么不同?
更复杂的 zcat 实现的示例用例是什么?
到目前为止,我无法通过观察看出这两个命令有何显着不同,也无法通过互联网搜索找到答案。
第一个是旧方式,第二个是新方式。 tar 过去并不像现在那样能够单独运行 gzip 或内置 gzip。因此,您必须单独运行解压缩器并将其通过管道传输到 tar。
即使它确实能够运行 gzip,您也需要告诉它使用哪个解压缩器,例如使用 gzip 的
z
选项。所以这是tar -xzf
。
现在 tar 内置了 gzip 和其他工具,并且 tar 会自动检测格式并使用正确的解压缩器,而无需您告诉它。通常首选您的第二种形式。