Bunzipping的-c选项是什么?

时间:2015-10-25 11:55:05

标签: linux compression bzip2

我使用bunzip2与-c标志有点混淆。

以下代码行运作良好:

ls -l
-> -rw-r--r-- 1 root root 163 Oct 25 13:06 access_logs.tar.bz2
bunzip2 -c access_logs.tar.bz2 | tar -t

当我尝试使用不带-c标志的代码时:

bunzip2 access_logs.tar.bz2 | tar -t

我收到消息:

tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

但是在显示列表ls -l时:

-rw-r--r-- 1 root root 10240 Oct 25 13:06 access_logs.tar

文档说:

  

管道的左侧是bunzip -c access_logs.tbz,其中   解压缩文件但(-c选项)将输出发送到   屏幕。输出重定向到tar -t。

根据手册:

   -c --stdout
          Compress or decompress to standard output. 

似乎解压缩也可以在没有-c标志的情况下工作?

2 个答案:

答案 0 :(得分:0)

您无法检查文件信息类型:

file access_logs.tar.bz2

检查手册:link

答案 1 :(得分:0)

我对你困惑的事感到困惑。您观察了问题的答案,并在文档中阅读。

如果没有-cbunzip2将解压缩xx.gz文件并将结果保存为文件xx。使用-c,它不会创建文件,而是将结果发送到stdout。如果您有一个管道|,那么它不会被打印到终端(这将是一团糟),它将成为管道右侧程序的输入。