解压档案并只输出一行?

解压档案并只输出一行?

我想知道是否有一种方法可以通过 shell 中的“unzip”解压缩文件,同时仅输出当前文件,而不是完全静音“-q”或不断增长的列表,这会减慢进程速度,尤其是通过 ssh 并填满你的控制台窗口。

或者至少有另一种方法可以查看进度而不必输出每一条路径?

答案1

您可以pv在行模式下使用:

unzip archive.zip | pv -l >/dev/null

为您提供如下所示的更新进度线:

 203 0:00:00 [3.93k/s] [ <=>                                                   ]

答案2

您可以使用pv之类的工具tar,但它不适用于 unzip。如果您尝试使用它,它不会显示其进度。

您可以使用类似下面的技巧来显示进度,该技巧实际上会为输出的每一行(每个提取的文件)打印一个点。这将比为每个文件显示一行更简洁,并且仍显示解压缩的进度。

unzip file.zip | awk 'BEGIN { ORS = " " } { print "." }'

相关内容