复制或移动文件时从文件中获取哈希值

复制或移动文件时从文件中获取哈希值

假设我用 复制一个文件pv,有什么方法可以获取任何哈希值,例如md5sha1等,而不必读取 origin 两次?它必须与大文件或块设备一起使用。

未按预期工作的示例命令:

pv /dev/sda1 | tee md5sum > /mnt/backups/sda.backup

答案1

... | tee md5sum > outputfile不起作用,因为tee采用文件名作为参数,该命令将创建一个名为md5sum.相反,您可以用进程替换来替换文件名(在 Bash/ksh/zsh 中):

... | tee >(md5sum) > outputfile

或者只是翻转逻辑,以便将目标文件名指定给tee,然后可以将其标准输出通过管道传输到md5sum

... | tee outputfile | md5sum

另外,考虑到 MD5 已被破坏,您可能需要使用 例如sha256sum或来代替。sha512sum

相关内容