该命令sha256sum
正确计算了.sha256文件中指示的校验和:
user@myHostname:~/Desktop/RT_N16/Merlin_JohnsFork$ sha256sum RT-N16_3.0.0.4_374.43_2-39L3j9527.trx
545927719c46e359a0db6bf9dcb348f99c0f3d8786725780cb182994c61b19be RT-N16_3.0.0.4_374.43_2-39L3j9527.trx
所有文件都位于同一目录中。我做到了不是创建.sha256 文件的内容:
user@myHostname:~/Desktop/RT_N16/Merlin_JohnsFork$ cat sha256sum.sha256
545927719c46e359a0db6bf9dcb348f99c0f3d8786725780cb182994c61b19be RT-N16_3.0.0.4_374.43_2-39L3j9527.trx
该sha256sum
命令读取.sha256文件并返回错误:
user@myHostname:~/Desktop/RT_N16/Merlin_JohnsFork$ sha256sum -c sha256sum.sha256
sha256sum: 'RT-N16_3.0.0.4_374.43_2-39L3j9527.trx'$'\r': No such file or directory
: FAILED open or read_2-39L3j9527.trx
sha256sum: WARNING: 1 listed file could not be read
问题
上述语法不正确还是.sha256文件有问题?
该命令是否尝试打开 filename=
_2-39L3j9527.trx
?
答案1
如果你仔细观察,你会发现这条信息实际上是
filename$'\r': No such file or directory
这$'\r'
是 shell 告诉您\r
字符串末尾有一个回车符 ( ) 的方式。这表示文件sha256sum.sha256
具有 DOS 或 Windows 样式的行尾 (CRLF),而不是 Unix 标准 LF 行尾。
您可以使用以下方法之一修复该文件如何将 Windows 行尾更改为 Unix 版本
dos2unix
您可以使用专门为此设计的程序:
dos2unix file.txt
将取代所有线路上的所有 CR,并投入运营。
要将输出保存到不同的文件中:
dos2unix -n file.txt output.txt
您可能需要先安装它:
sudo apt-get install dos2unix