今天遇到一件烦心事:
由于一个项目需要做文件验证,先在Windows上做了md5,然后上传到FreeBSD中再做md5验证,发现md5不一致。反复做了检查了各个步骤,仍然不一致,把代码反来复去改了大半天,仍然没能解决。
偶尔上传了一个zip文件,惊奇发现md5一致了,这才怀疑是不是winscp对文本文件做了处理。
把文件文件改名为.zip,再次上传,md5一致了。
这才注意到:在Windows下的文本文件用ssh上传到Unix/Linux,会自动进行格式转换,就是把回车、换行转为换行,在Unix下查看,会发现少了^M。
winscp也会反过来转换,在Unix下的换行会自动转为回车换行,在记事本中查看可以看到正确的格式。
如果不希望进行自动转换,在传输时选择binary模式,默认是auto。