windows 和 linux 之间传送文本文件,用二进制模式,为何传输后的文件可以正常打开?

2015-06-14 19:05:36 +08:00
 ajianrelease
用winscp将一个文本文件从windonws传到Ubuntu,默认使用的是二进制模式。传输后,在Ubuntu上用vim可以正常打开,文件中的换行是正常的。传送前后两个文件的md5是相同的

我的疑问是:Windows和Linux的换行符是不同的啊,而且我用的二进制模式传输的,传输过程中应该不会转换换行符啊,那为何在Linux下还可以正常显式呢?

另外,我用winscp又测试了从Ubuntu传送文本文件到windows,也用二进制模式,在windows下也可以正常打开。
6222 次点击
所在节点    程序员
29 条回复
msg7086
2015-06-15 00:18:46 +08:00
(谁告诉你不能正常打开的)
feikaras
2015-06-15 01:13:19 +08:00
@ajianrelease 问题是linux也可以保存成dos模式。自己看下编辑器。
ryd994
2015-06-15 02:37:17 +08:00
可能是ftp分二进制模式和文本模式,文本模式下自动转换了
withrock
2015-06-15 10:04:23 +08:00
建议都用二进制传输。有时候会遇到Windows下的文件传输到linux下后用vi打开,看到许多^M符号。只能
:%s/^M//g了
caoyue
2015-06-15 10:42:09 +08:00
为什么你会觉得文本内容会没法正常打开……
notepad.exe 是只能把 CRLF 识别为换行,但是不代表不能识别其他内容啊
你用 notepad.exe 打开 LF 换行的文件,只是会出现所有内容不变,但是挤在一行
ajianrelease
2015-06-15 16:08:06 +08:00
@caixiexin 感谢,我用:set ff看了下,是DOS文件格式
ajianrelease
2015-06-15 16:08:47 +08:00
@withrock 这个建议很好,话说又学了一招,谢谢
walleL
2015-06-15 16:52:06 +08:00
没人说用 cat -A file 看看?
ajianrelease
2015-06-15 18:29:37 +08:00
@walleL 牛啊,原来还有这么好的命令,简直是照妖镜啊,直接让换行符再原形了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198493

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX