【问题标题】:What is the -c option for when bunzipping?打包时的 -c 选项是什么?
【发布时间】:2015-10-25 11:55:04
【问题描述】:

我对使用 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标志也能解压?

【问题讨论】:

  • 如何解压一个 bzip2 压缩文本文件:bunzip2 file.bz2
  • 如何解压任何 tar 档案,任何后缀 .gz、.xz、bz2 : tar xvf file.tar.*
  • »» tar:这看起来不像 tar 存档 «« >>> 要么不是 tar 存档,要么已损坏。

标签: linux compression bzip2


【解决方案1】:

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

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

【讨论】:

  • 我对 -c 应该根据手册页解压缩文件这一事实感到困惑,但是在没有 -c 标志的情况下也会发生解压缩。仍然没有 -c 选项,消息:This does not look like a tar archive 被输出到控制台。
  • 但是给出了答案,我现在看到了。结果需要发送到stdout,否则我无法通过管道传送到下一个进程。
【解决方案2】:

你不能检查文件信息类型:

file access_logs.tar.bz2

查看手册:link

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多