今天遇到一件煩心事:
由於一個項目需要做文件驗證,先在Windows上做了md5,然後上傳到FreeBSD中再做md5驗證,發現md5不一致。反復做了檢查了各個步驟,仍然不一致,把代碼反來復去改了大半天,仍然沒能解決。
偶爾上傳了一個zip文件,驚奇發現md5一致了,這才懷疑是不是winscp對文本文件做了處理。
把文件文件改名為.zip,再次上傳,md5一致了。
這才注意到:在Windows下的文本文件用ssh上傳到Unix/Linux,會自動進行格式轉換,就是把回車、換行轉為換行,在Unix下查看,會發現少了^M。
winscp也會反過來轉換,在Unix下的換行會自動轉為回車換行,在記事本中查看可以看到正確的格式。
如果不希望進行自動轉換,在傳輸時選擇binary模式,默認是auto。