详细解答可以参考官方帮助文档
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 工具调整为二进制模式的传输方法,点击编辑 > 设置,然后按照以下调整,通过二进制方式重新上传程序即可。
如果问题还未能解决,请联系售后技术支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。