例如在文件test.txt里写入
test
讯享网
没有换行。
然后
讯享网sha256sum test.txt
出来的结果是
f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93bda52e6ccc26fd2 test.txt
但是在这个网站上
http://encode.chahuo.com/
输入test,然后以sha256方式哈希得到的结果是
讯享网9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
两者不一致。
stat test.txt
讯享网 文件:test.txt 大小:5 块:8 IO 块:4096 普通文件 设备:10301h/66305d Inode: 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 1000/searchstar) Gid:( 1000/searchstar) 最近访问:2020-04-23 11:53:08. +0800 最近更改:2020-04-23 11:53:03.0 +0800 最近改动:2020-04-23 11:53:03.0 +0800 创建时间:-
会发现大小为5字节,说明linux的文件中加上了其他东西。
用hexdump来看看到底加上了什么。

讯享网
居然是0x0a,也就是\n。为了验证,用vscode打开它看看

末尾果然多了个换行符。把它去掉,保存。

文件大小变回4字节了,而且sha256sum的输出也和网站一样了。
此外,还可以尝试让sha256sum直接从stdin中读入

sha256sum -
然后输入
讯享网test<EOF>
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
与网站上的一致了。
为什么要自动加一个换行呢?
如果没有换行,那就会这样

自动加上了换行,就会这样

vim中禁用自动加换行
参考:https://stackoverflow.com/questions//vim-disable-automatic-newline-at-end-of-file
在~/.vimrc中加入
讯享网set noeol set nofixendofline
两个缺一不可,而且只有新建文件时才有用,打开已有文件时仍然不能显示出多加的那个空行。最气的是当没有最后的空行,然后又自己手动加一个,保存关闭再打开之后空行又不显示了。说好的Linux高自由度呢???
祭奠我逝去的一小时
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/62127.html