Windows和Linux的文件分隔符、换行符问题

Windows和Linux的文件分隔符、换行符问题

一般来说,大部分java开发是在Windows上开发,而生产环境下在Linux中运行

文件分隔符

  • Windows文件分隔符默认为"\",由于是转义符,通常开发中写为"\\",注意,Windows也可以识别"/"分隔符

  • Linux文件分隔符默认为"/",且只能识别这种

所以,在日常开发中文件分隔符建议写为"/",推荐使用File.separator或者File.separatorChar

换行符

CR回车 LF换行

  • Windows/Dos CRLF \r\n
  • Linux/Unix LF \n
  • MacOS CR \r

java开发

Linux只能识别\n换行符,\r会被当做一个字符,而Windows下默认换行符为\r\n,但\n也可以。

所以当使用Java输出数据到文件中时推荐使用\n

shell开发

使用Notepad++编辑sh文件,如下图

在这里插入图片描述

Notepad++显示换行符:视图 --> 显示符号 --> 显示行尾符

将脚本上传到Linux环境中执行,将会报如下错误

在这里插入图片描述

解决方法1:

在Notepad++操作:编辑 --> 文档格式转换 --> 转为UNIX格式

此时换行符会变为LF,上传Linux环境执行成功

解决方法2:

在Linux环境中使用vi打开:

  • 输入set ff命令显示fileformat=dos
  • 输入set ff=unix命令确认,再输入set ff命令显示fileformat=unix
  • 输入wq保存退出

此时执行脚本成功

解决方法3:

在Linux环境中执行:sed -i ‘s/\r$//’ test.sh (相当于将\r全部替换掉)

在这里插入图片描述

idea开发

idea设置默认文件换行符

在这里插入图片描述

git版本控制

使用git做版本控制时注意,默认情况下,无论本地文件换行符是什么,在git服务器中存储都是LF,但是检出时都会变成CRLF

解决方法

打开git bash,设置core.autocrlf和core.safecrlf,建议设置autocrlf为input,safecrlf为warn。

下面为参数说明,–global表示全局设置

autocrlf

提交时转换为LF,检出时转换为CRLF(默认)

git config --global core.autocrlf true

提交时转换为LF,检出时不转换(推荐)

git config --global core.autocrlf input

提交检出均不转换

git config --global core.autocrlf false

safecrlf

拒绝提交包含混合换行符的文件

git config --global core.safecrlf true

允许提交包含混合换行符的文件(默认)

git config --global core.safecrlf false

提交包含混合换行符的文件时给出警告(推荐)

git config --global core.safecrlf warn

注意:以上设置只针对个人电脑上的git环境,需要每个开发人员都统一设置

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值