在 md5sum 命令上使用 --check 生成的校验和文件失败

Using --check on a md5sum command generated checksum file is failing

我尝试 运行 md5sum -c 我生成的校验和文件时遇到错误。我应该提一下,我是从 PowerShell 运行ning 这个(因为脚本最终会 运行ning 这个),这是 md5sum.

的 cygwin 版本

我有一个测试文件,jira_defect.txt 并且我创建了这样的校验和:

md5sum jira_defect.txt > result.md5

这给出了一个包含以下内容的文件:

7d559b59459052f274e290b5e01a5485 *jira_defect.txt

但是当我运行

md5sum -c result.md5

我收到臭名昭著的错误消息

result.md5: no properly formatted MD5 checksum lines found

我已经使用 -t 选项再次尝试此操作,该选项删除了星号,但这并没有什么不同。

使用重定向运算符将校验和写入输出文件会导致使用默认编码 (Unicode) 创建文件。 md5sum 需要一个 ASCII 文件。使用Set-Content(或Out-File)以ASCII编码保存文件:

md5sum jira_defect.txt | Set-Content result.md5 -Encoding ASCII

如果将内容传送到 md5sum:

,您也可以使用 Unicode 文件
Get-Content result.md5 | md5sum -c

示范:

PS C:\> <b>md5sum .\test.ps1 > result.md5</b>
PS C:\> <b>md5sum -c .\result.md5</b>
C:\md5sum.exe: .\result.md5: no properly formatted MD5 checksum lines found
PS C:\> <b>Get-Content .\result.md5 | md5sum -c</b>
.\test.ps1: OK
PS C:\> <b>md5sum .\test.ps1 | Set-Content result.md5 -Encoding ASCII</b>
PS C:\> <b>md5sum -c .\result.md5</b>
.\test.ps1: OK