今天配置linux的dns服务器,在配置的时候,在linux下修改配置文件感觉很麻烦,于是想到把配置文件拿到windows上修改后在应用到linux上。当我把linux上的配置文件通过文本文档修改好后,传到linux上用cat命令查看的时候发现每一行最后多了一个^M的字符,只好再用vi打开,一行一行的删除。
后来查了一下资料才知道,原来是dos与linux的断行字符的不同导致的,从而也就有了更好的解决方法。详情看后面的解说
在linux下面,我们可以用cat命令来查看windows系统简历的文本文件,不过会发现dos下的断行字符为^M,我们成为CR与LF。而 linux下的仅有LF($)。这样的话就多出了一个CR(^M)的符号出来。如果是一个shell的脚本文件,就不能正常的执行了。
以前我们是使用vi一行一行的删除,有没有好的解决方法呢!大家可能会想到把格式转换成linux的就可以了,怎么么做,下面我们一起来看看。其实简单的几个命令就可以了。 #dos2unix [-kn] file [newfile] #UNIX2dos [-kn] file [newfile] 参数解析 -k:保留该文件的原来的mtime时间格式(不更新文件上次内容经过修改的时间) -n:保留原本的旧文件,将转换后的内容输出到新文件,如:dos2UNIX -n old new EG: #UNIX2dos -k man.config #dos2UNIX -k -n man.config man.config.linux
就这么简单,所以在不同的系统之间复制纯文本的文件时,一定要记得使用UNIX2dos或这dos2UNIX命令来转换一下断行格式