美文网首页
解决Linux与Windows之间拷贝文件出现^M奇怪字符

解决Linux与Windows之间拷贝文件出现^M奇怪字符

作者: 八幡大老师 | 来源:发表于2018-12-19 10:59 被阅读0次

    在linux上使用NFS、FTP等从Windows直接拷贝文件夹或文件时,会发现文件中有“^M”奇怪字符。

    原因

    这是由于Windows和Linux对回车符定义不同造成的。
    对于回车符的定义:

    • Windows:0x0D 0x0A
    • Unix/Linux: 0x0A
    • Mac: 0x0D

    解决办法

    1.文件上传到linux后调整

    $ vim log.txt 
        :set fileformat=unix
        :wq
    

    用vim打开文件修改文件回车符格式后保存即可。

    还可以使用sed命令来直接修改文件字符:
    sed -i 's/^M//g' filename

    但每次Windows 拷贝到Linux,都会出现这个问题。

    2.文件上传前解决办法

    在windows本地完成脚本的编写后,使用git命令行工具git-bash,运行vim命令打开脚本文件,执行与上面一致的操作,会有如下提示:

    warning: LF will be replaced by CRLF in dark.sh. 
    The file will have its original line endings in your working directory.
    

    这样,该文件以后从Windows拷贝到Linux,不会再出现这个字符问题,脚本执行无异常。

    相关文章

      网友评论

          本文标题:解决Linux与Windows之间拷贝文件出现^M奇怪字符

          本文链接:https://www.haomeiwen.com/subject/wjidkqtx.html