如何命令 pv (管道查看器) 与 diff 一起工作?

如何命令 pv (管道查看器) 与 diff 一起工作?

使用:
操作系统:Kubuntu 22.04.3LTS x86_64
diff (GNU diffutils)3.8 版权所有 (C) 2021 自由软件基金会,Inc.
pv1.8.0 版权所有 2023 Andrew Wood,pv = Pipe Viewer

上面显示的命令:
neofetch --stdout |grep 'OS:'
diff --version
pv --version

下面的 cmd1 运行正常:
time diff -rq --no-dereference "$dir1" "$dir2" && echo "no difference" || echo "differences!"

如果上面的 cmd1 需要几个小时来比较两个目录,
那么最好(但不是必须)
对完成比较的时间进行估计。ETA
~ 估计到达时间 = 比较完成。

下面的 cmd2 不起作用:
diff -rqs "$dir1" "$dir2" |pv -s $(du -bc "$dir1" |tail -1 |cut -f 1) |grep -v "^Files .* identical$" > /tmp/logfile_diff_compare1.txt

使用上面的 cmd2,
如果所有比较都正常,
那么输出到文本文件的内容是0字节,这意味着
/tmp/logfile_diff_compare1.txt
是一个零字节文本文件 = 没有差异 = 100%比较正常。

注1:
经过3小时的比较,cmd2的输出完成了大约40%:

# 50.4MiB 1:12:57 [0.00  B/s] [>                                                    ]  0% ETA 0:00:00

注2:
ETA 0:00:00
但应该大约2小时

注3:

1263856953223 = bytes in source directory dir1 or
1263.9 GB     =       in source directory dir1 or
   1.2 TB     =       in source directory dir1 

参考:
更多进展和 ETA 技巧
https://assafmo.github.io/2018/06/16/more-progress-eta.html

➜  joincap *.pcap | pv -s $(du -bc *pcap | tail -1 | cut -f 1) > merged.pcap 
1.16GiB 0:00:04 [ 275MiB/s] [============>                    ] 38% ETA 0:00:06 

问题:如何命令 pv (Pipe Viewer) 与 diff 一起工作?

--

相关内容