我想知道如何创建/提取/验证.tar.md5
文件。将图像闪存到Android设备时使用这些文件,例如,请参阅here。
据我所知,校验和会附加到文件中,如下所示:
cp file.tar file.tar.md5
md5sum file.tar >> file.tar.md5
首先,我想知道如何提取文件。我可以在tar -xf
上使用file.tar.md5
吗?
如何验证文件的完整性?我想从文件中删除最后一个字节(包含校验和)以获取原始文件。我想你必须使用正则表达式匹配checksum file.tar
?这样的事情已经在某处实现了吗?
答案 0 :(得分:4)
首先,tar -xf应该可以正常工作,因为tar会在其匹配时继续运行。打包算法。如果文件停止匹配,那么tar。 此外,如果您删除" .md5",大多数档案管理员(例如7-zip或winrar)都会打开它。 他们可能会打印与文件末尾不匹配的错误,忽略它。
至于验证文件:
打印出存储的md5sum:尾部-z -n 1 [此处为文件名] .tar.md5
计算文件tar部分的md5sum: head -z -n -1 [此处的文件名] .tar.md5 |的md5sum
答案 1 :(得分:0)
在Ubuntu 19.10上对我有用的是:
。
for F in *.tar.md5; do echo -n "$F " &&
EXP=($(tail --lines=1 "$F")) &&
ACT=($(head --lines=-1 "$F" | md5sum)) &&
if [ ${EXP[0]} = ${ACT[0]} ]; then echo -n "md5ok " &&
tar --extract --file "$F" && echo "done"
else echo "FAIL"; fi; done &&
unlz4 --multiple --verbose *.lz4
AP_G965U1UEU3ARL1_CL14745140_QB21029084_REV01_user_low_ship_MULTI_CERT_meta.tar.md5 md5ok done
BL_G965U1UEU3ARL1_CL14745140_QB21029084_REV01_user_low_ship_MULTI_CERT.tar.md5 md5ok done
CP_G965U1UEU3ARL1_CP11407818_CL14745140_QB21029084_REV01_user_low_ship_MULTI_CERT.tar.md5 md5ok done
CSC_OMC_OYM_G965U1OYM3ARL1_CL14745140_QB21029084_REV01_user_low_ship_MULTI_CERT.tar.md5 md5ok done
HOME_CSC_OMC_OYM_G965U1OYM3ARL1_CL14745140_QB21029084_REV01_user_low_ship_MULTI_CERT.tar.md5 md5ok done
…
但是我们都应该尝试摆脱bash