解压似乎失败

解压似乎失败

我跑:

~$ gzip -d Mom.img.gz
^C
~$

Mom.img.gz通过管道 a ddto创建gzip。我应该看到输出吗?我也用GUI尝试过,进度条没有动。

答案1

gzip不,当您使用它来压缩或解压缩时,您通常不会看到任何输出。

例子

假设我有一个示例文件。

$ ll | grep a.img
-rw-rw-r--.   1 saml saml   1474560 Mar 31 21:57 a.img
压缩
$ gzip a.img 
$
$ ll | grep a.img
-rw-rw-r--.   1 saml saml    944497 Mar 31 21:57 a.img.gz
解压
$ gzip -d a.img.gz 
$
$ ll | grep a.img
-rw-rw-r--.   1 saml saml   1474560 Mar 31 21:57 a.img

gzip如果您在执行操作时想要更多反馈,您可以包含--verbose-v开关以获得更多输出。

$ gzip -vd a.img.gz 
a.img.gz:    35.9% -- replaced with a.img

为什么没有反馈?

如果您认为这gzip不起作用,那么很可能是这样,而且它实际上运行得很好。您可以通过打开另一个 shell 并运行命令(例如top或)来观察进程,以确认它实际上正在执行一些有用的操作,htop以查看gzip进程运行时正在执行的操作。

您也可以使用这样的命令来“观看”它。

$ watch "ps -eaf | grep [g]zip"

您还可以使用命令行工具pidstat“监视”进程:

$ pidstat -r 2 -C thunder
Linux 3.13.6-100.fc19.x86_64 (greeneggs.bubba.net)  03/31/2014  _x86_64_    (4 CPU)

10:26:24 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
10:26:26 PM  1000      3323     24.38      0.00 1572252 323264   4.06  thunderbird

10:26:26 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
10:26:28 PM  1000      3323    138.50      0.00 1572252 322720   4.05  thunderbird

上面我正在查看我的邮件客户端,thunderbird每 2 秒显示一次 CPU 负载摘要。

答案2

您还可以使用pv“管道查看器”来监视进程处理和/或输出数据的数量和速度。
在 Debian/Ubuntu 上,您需要安装包裹pv使用它。

pv a.img.gz | gzip -cd > a.img

将为您提供 的总吞吐量和当前吞吐量gzip,以及进度条并估计何时gzip完成输入文件的处理(假设其速度保持不变)。

您还可以监视输出...

gzip -cd a.img.gz | pv > a.img

...或者甚至结合这两个命令并同时监视输入和输出:

pv -cN input a.img.gz | gzip -cd | pv -cN output > a.img

(在这种情况下,您需要pv-c选项来防止两个进度指示器相互覆盖,并-N为它们指定(任意)名称以了解哪个是哪个。)

相关内容