当我尝试在我生成的校验和文件上运行md5sum -c
时遇到错误。我应该提一下,我是从PowerShell运行它的(因为脚本最终将运行它),这是md5sum
的cygwin版本。
我有一个测试文件jira_defect.txt
,我已经创建了这样的校验和:
md5sum jira_defect.txt > result.md5
这给出了一个包含以下内容的文件:
7d559b59459052f274e290b5e01a5485 *jira_defect.txt
但是当我跑步时
md5sum -c result.md5
我收到了臭名昭着的错误消息
result.md5:找不到格式正确的MD5校验和行
我已经使用-t
选项再次尝试了这个选项,删除了星号,但这并没有什么区别。
答案 0 :(得分:2)
使用重定向运算符将校验和写入输出文件会导致使用默认编码(Unicode)创建文件。 md5sum
需要一个ASCII文件。使用Set-Content
(或Out-File
)以ASCII编码保存文件:
md5sum jira_defect.txt | Set-Content result.md5 -Encoding ASCII
如果将内容传输到md5sum
:
Get-Content result.md5 | md5sum -c
演示:
PS C:\> md5sum .\test.ps1 > result.md5
PS C:\> md5sum -c .\result.md5
C:\md5sum.exe: .\result.md5: no properly formatted MD5 checksum lines found
PS C:\> Get-Content .\result.md5 | md5sum -c
.\test.ps1: OK
PS C:\> md5sum .\test.ps1 | Set-Content result.md5 -Encoding ASCII
PS C:\> md5sum -c .\result.md5
.\test.ps1: OK