android - 如何使用 xxxx.md5 文件或如何删除 .md5 扩展名?

标签 android file mobile md5-file

我得到如下这样的文件:

GT-I5500-CSC-SERJK1.tar.md5

这就是我想要的:

GT-I5500-CSC-SERJK1.tar 

我怎样才能得到它?我可以只删除 md5 文件扩展名吗?

最佳答案

据我所知,这是一种将校验和添加到 tar 文件的简单方法。由于 tar 标准声明 tar 文件的末尾是连续两个连续的空白“条目”,因此“tar -x”将忽略超过该点的所有数据。所以 android 开发社区显然已经开始简单地将 md5 的输出连接到这个文件的末尾。

以下 bash 脚本可用于验证“.tar.md5”文件:

#! /bin/bash

check_tar_md5 () {
    local file="${1:?Required: file to check}"
    [[ ! -f "$file" ]] && {
            echo "File not found: $file" >&2
            return 1
    }
    local filename="$(basename "$file")"
    if [ "${filename##*.}" = md5 ]; then filename="${filename%.*}"; fi;
    local md5_line_length=$(printf "%032d *%s\n" 0 "$filename" | wc -c)
    local embedded_md5=$(tail -c $md5_line_length "$file" | ( read md5 rest; echo $md5 ) )
    local actual_md5=$(head -c -$md5_line_length "$file" | md5sum | ( read md5 rest; echo $md5 ) )
    if [ $embedded_md5 = $actual_md5 ]; then
            echo "$file: OK"
    else
            echo "$file: FAILED"
            return 1
    fi
}

[[ ! -z "$1" ]] && check_tar_md5 "$1"

如果您“获取”这个脚本,您将在当前环境中拥有一个“check_tar_md5”函数;否则你可以执行它;在任何一种情况下,您都将文件作为唯一参数提供。输出类似于“md5sum --check”实用程序。

让脚本更健壮(例如:如果您提供的文件不是 .tar.md5)留给读者作为练习。

关于android - 如何使用 xxxx.md5 文件或如何删除 .md5 扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647167/

相关文章:

file - 二进制安全redis

azure - Xamarin Azure Easy Table 连接 CancelledByNetworkError 异常

android 获取 Activity 返回 null

android - 将 AlertDialog 显示为来自服务的系统覆盖窗口

java - FTPClient 的 setFileTransferMode 没有生效

file - Gradle - 将文件夹从 ABC move 到 XYZ

jquery - HTML5 中的移动测验应用程序?

mobile - 如何链接到移动版 Google Plus

android - 如何在 Activity 之间切换时显示进度条

android - 使用 ktor 进行流式下载