bunzip 时的 -c 选项是什么?

What is the -c option for when bunzipping?

我对使用 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

文档说:

The left side of the pipeline is bunzip –c access_logs.tbz, which decompresses the file but the (-c option) sends the output to the screen. The output is redirected to tar –t.

根据手册:

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

好像没有-c标志也能解压?

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

file access_logs.tar.bz2

查看手册:link

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

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