如何处理.tar.md5文件

时间:2016-08-26 19:11:36

标签: android tar checksum

我想知道如何创建/提取/验证.tar.md5文件。将图像闪存到Android设备时使用这些文件,例如,请参阅here

据我所知,校验和会附加到文件中,如下所示:

cp file.tar file.tar.md5
md5sum file.tar >> file.tar.md5

首先,我想知道如何提取文件。我可以在tar -xf上使用file.tar.md5吗?

如何验证文件的完整性?我想从文件中删除最后一个字节(包含校验和)以获取原始文件。我想你必须使用正则表达式匹配checksum file.tar?这样的事情已经在某处实现了吗?

2 个答案:

答案 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上对我有用的是:

  • 从sammobile com下载单文件4 GiB zip
  • 解压缩到多个* .tar.md5
  • 运行以下命令行

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