首页/系统/Linux 运维命令速查/dos2unix 换行符转换
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

dos2unix 换行符转换

把 Windows CRLF 换成 Unix LF(unix2dos 反向)。脚本在 Linux 报 bad interpreter 或 ^M 报错,十有八九是它。

Linux 运维命令速查系统更新于 2026-10-12
用途CRLF / LF 换行符互转(原地修改)
语法dos2unix [-k] 文件... / unix2dos 文件...
来源dos2unix 包

常用示例

常用示例
dos2unix -k deploy.sh          # -k 保留文件时间戳
unix2dos -k conf.ini
find . -name '*.sh' -exec dos2unix -k {} +   # 批量修脚本
file deploy.sh                # 探测是否含 CRLF
bash: ./deploy.sh: /bin/bash^M: bad interpreter 就是 CRLF 的典型报错,dos2unix 一条命令解决。

易错点

  • 默认原地覆盖写入,批量转换前先备份(或先用 -f 强制、-k 保时间戳看清变化)
  • 会跳过二进制文件并提示,但被误加执行位的文本仍可能被改动——转换后 git diff 复核一遍最稳

数据来源与参考

  • man 1 dos2unix(dos2unix 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌