Linux与Windows的断行符问题
在Linux系统中,当我们使用cat -A
命令来查看以Windows建立的文件的格式时,可以发现在Windows中使用的断行符是^M$
,被称为“CRLF”。而以Linux建立的文件格式却只有LF($)
这个断行符号。
Linux下面的命令在开始执行时,他的判断依据是[ENTER],而且Linux的[ENTER]为LF符号。由于Windows的断行符是CRLF,也就是说多出了一个^M
的符号来。这时候,如果去执行一个shell script的脚本文件时,可能就会出现问题。
那么,该怎么办呢?很简单,把格式转换为Linux格式即可,难道要vim进入该文件,一个一个去删除^M
字符吗,肯定不是拉,我们可以使用命令来进行格式转换。
|
|
参数:
|
|
下面将从Windows传到Linux的hello.sh文件进行格式的转换:
|
|
使用ls -l查看下:
|
|
因为,断行符^M少了,所以文件大小也变小了。
同理:可以使用unix2dos命令来将文件转换为Windows格式断行。
###小结
现在,我们知道在Linux下与Windows下的断行格式有冲突,因此,不建议在Windows系统当中将文件编辑好后传到Linux,会发生错误问题。不过,当在不同的系统之间进行文件的复制时,千万记得要使用unix2dos或者dos2unix命令来转换下格式。
- 原文作者:maratrix
- 原文链接:https://maratrix.cn/post/2014/06/27/unix-dos-crlf/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。