开发者社区> 问答> 正文

Windows 系统上传文件到 Linux 系统出现 DOS 格式换行符

已解决

展开
收起
2018-06-16 21:45:19 1056 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    Windows 系统往Linux系统上传文件时如果使用了DOS格式保存编辑了文件,上传到 Linux 系统会导致部分脚本功能无法执行。原因是由于 Windows下文件是以 \r\n 作为换行结束符的,表示成十六进制就是0D 0A,Linux下文件是以 \n 作为换行结束符的,表示成十六进制就是 0A,如果在 Windows 下用文本编辑器使用 dos 模式打开,保存文件后使用 text 模式上传到 Linux 系统,会导致很多脚本程序无法正确识别执行。

    用 vi 命令打开 dos 格式文件,行尾会显示~m,Linux 系统很多命令无法处理好 dos 格式文件,所以如果在 windows 系统往 Linux 服务器上传文件时没有使用二进制上传,会导致出现错误的。


    解决方法1:

    Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r\n"转化成"\n",unixtodos把"\n"转化成"\r\n"。

    命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename

    如果想更多的了解这两个命令,可以查看手册:man dos2unix 


    解决方法2:

    文件传输过程使用二进制方式进行传输,如下是 Filezilla 工具调整为二进制模式的传输方法,点击编辑 > 设置,然后按照以下调整,通过二进制方式重新上传程序即可。

    1.JPG


    如果问题还未能解决,请联系售后技术支持



    2018-06-18 03:04:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Decian GNU/Linux安全合规之路 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载