1、基本概念:
回车符和换行符的来源:
在最初的电传打印机时代,每打完一行需要换行的时候,耗费的时间正好是打印两个字符的时间。那么如果这段时间内正好传来两个字符,就会打印不出来。所以当时就在一行的最后增加了两个字符,一个是回车,指的是把打印头定在左边界(还是在这一行);另一个是换行,指的是让打印头进入新的行。
回车符和换行符的意义:
回车符:回到一行的开头,'\r' ,Carriage Return;
换行符:另起一行,'\n' ,Line Feed。
所以我们平时编写文件的回车符应该确切来说叫做回车换行符
2、不同操作系统中的回车换行:
1)在MS-DOS和Windows中,每行结尾是“回车+换行”,即“\r\n”;
2)Linux/Unix系统里,每行结尾用换行LF,即“\n”;
3)Mac OS 1-9,每行结尾用回车CR 即'\r';之后的版本Mac OS X/OS X/macOS,每行结尾用换行LF,即“\n”。
3、跨操作系统:
在操作系统中打开其他操作系统中的文件,会出现一些奇怪的事情:
1)在Windows里打开Unix/Mac系统中创建的文件,会发现所有文字会变成一行,因为没有“回车+换行”来更换新行;
2)在Unix/Mac下打开Windows中创建的的文件,在每行的结尾,多余的回车符可能会被显示为^M或<cr>。
我们可以使用一些命令进行文件格式的转换:
在linux下,命令unix2dos (或者命名为fromdos或d2u)可以把linux文件格式转换成windows文件格式,命令dos2unix(或者命名为todos或u2d)可以把windows格式转换成linux文件格式。
参考:维基百科