目前很多脚本语言都能够跨平台:在 Windows 系统的计算机上开发调试, 然后上传到远程的 Linux 计算机去执行的情况非常普遍。
但是如果你只是简单地将 Windows 系统下编辑过的脚本拿到 Linux 系统执行, 会遭遇奇怪的错误。这通常是由换行符编码的问题造成的:Windows、UNIX/Linux 和早期的 macOS 操作系统对换行符使用了各自的编码方案。
dos2unix 是一个开源免费的可执行程序包, 支持多个平台, 不仅可以将文本文件的换行符编码在 Windows、macOS 和 UNIX/Linux 操作系统之间进行转换, 还能转换文件的编码方式。本文介绍该程序包的配置和使用过程。
安装
Windows 操作系统
对于 Windows 操作系统的用户, 从 SourceForge 网站*载下**程序压缩文件, 解压后即可看到 bin/ 文件夹内的可执行程序。打开 "命令提示符" 窗口, 使用 cd 命令进入程序所在目录, 键入程序名(如 dos2unix)即可运行相应的程序。
如果你希望在任何目录都能使用该程序, 可以考虑将程序所在目录添加到系统的环境变量, 或直接将软件包内的可执行文件移动至 "C:\Windows\System32" 文件夹内。
*载下**地址: https://sourceforge.net/projects/dos2unix/
Linux 操作系统
对于 Linux 操作系统, dos2unix 程序已经被添加到系统的软件源内, 可以直接从软件源进行安装。
Fedora、CentOS 等 Linux 发行版的安装命令为:
># sudo yum install dos2unix
Debian、Ubuntu 等发行版的安装命令为:
># sudo apt-get install dos2unix
安装之后即可使用其包含的几个命令, 如 dos2unix、unix2dos 等。
Node.js
使用 Node.js 的用户, 还可以直接使用 Node.js 中的对应模块:
># npm install dos2unix
遗憾的是, 该模块不可以作为命令行程序直接使用, 只能作为 Node.js 的编程模块。
直接操作原有文件, 将 filename 由 MS-DOS 编码模式转换到 UNIX/Linux 编码模式:
dos2unix filename
将当前的目录全部转换
find . -type f -exec dos2unix {} \;