我想使用管道查看器或对话框 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 在文件名(空格等)方面的所有限制。(正如我所说,不优雅。)