如何向 md5deep 添加进度条?

如何向 md5deep 添加进度条?

我想使用管道查看器或对话框 GUI 工具为 md5deep 命令实现命令行进度条。

我尝试了以下操作:

pv file.md5 | md5deep -X - -r Destination

我无法让进度条正常工作。md5deep 中有一个选项,您可以通过执行以下操作来获取 ETA:

md5deep -eX file.md5 -r Destination

此选项确定每个文件的预计到达时间,无法确定整个目录可能需要多长时间。任何有关实施进度的建议都将不胜感激

答案1

这不是特别优雅,但它可能会起到作用(不是使用 md5deep,而是使用 md5sum:但是,无论如何,每个文件都会递归列出并传递给 md5sum):

$ tar cf - .   | pv -s $(du -scb . | tail -1 | cut -f1) | tar tf - | xargs  md5sum  > /tmp/md5.txt 2> /tmp/md5.err.txt

...请注意,这在技术上并不是跟踪 md5sum 的进度,而是跟踪 tar/untar 的进度,然后事后将文件传递给 md5sum。进度仅通过获取要处理的目录的大小 (du) 来近似;如果要处理的最后一个文件需要一个小时,它将报告最后一个文件处理持续时间的 100%。(我想使用 tar 以外的其他东西也可以做类似的事情。)并且它受 tar/xargs 在文件名(空格等)方面的所有限制。(正如我所说,不优雅。)

相关内容