cla*_*rkk 11 command-line gzip
为什么这是不可能的?
pv ${dest_file} | gzip -1
Run Code Online (Sandbox Code Playgroud)
pv 是一个进度条
gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h
0 B 0:00:00 [ 0 B/s] [> ] 0%
Run Code Online (Sandbox Code Playgroud)
这有效
pv ${file_in} | tar -Jxf - -C /outdir
Run Code Online (Sandbox Code Playgroud)
Jak*_*uje 27
你想要实现的是查看压缩过程的进度条。但不可能使用pv. 它只显示传输进度,您可以通过这样的方式实现(无论如何,它是谷歌中的第一个链接):
pv input_file | gzip > compressed_file
Run Code Online (Sandbox Code Playgroud)
进度条会跑得很快,然后会等待压缩,这在使用pv.
但是你可以反过来看输出流,bot在这里你将无法看到实际进度,因为pv不知道压缩文件的实际大小:
gzip input_file | pv > compressed_file
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现的最好的是来自commandlinefu 的,即使有速率限制和目录压缩:
$D=directory
tar pcf - $D | pv -s $(du -sb $D | awk '{print $1}') --rate-limit 500k | gzip > target.tar.gz
Run Code Online (Sandbox Code Playgroud)
小智 5
是的,有点可能使用文件的行,而不是字节。你会得到一个足够准确的进度条:
cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file
Run Code Online (Sandbox Code Playgroud)