WSL 使用 LF 行结尾还是 CRLF 行结尾?

Rah*_*ana 9 git terminal command-line windows-subsystem-for-linux

Unix 使用 LF 行结尾。Windows 使用 CRLF 行结尾。那么WSL呢?

IMS*_*SoP 9

这个问题实际上没有答案,因为操作系统不使用行结尾,应用程序使用行结尾。大多数操作系统 API 将文件的内容作为连续的字节流而不是行的集合提供给应用程序,因此应用程序可以根据它想要的任何算法来读取和写入行结尾。

Windows(以及之前的 MS-DOS)上的约定是应用程序使用 CR LF 对来指示行结尾,而Unix(以及相关系统,例如 Linux)上的约定是应用程序仅使用 LF。

现代应用程序通常能够读取和写入任一格式(包括最新版本的 Windows 中的记事本),但可能会根据这些历史约定选择默认格式。

由于在 WSL 下运行的应用程序与在真实 Linux 系统下运行的应用程序相同,因此它们可能会默认为 LF。

  • @JoachimSauer 这些都是很好的例子,但我仍然认为速记具有误导性,因为它会导致像这样的混乱问题。OP 在其 WSL 系统上的 /proc 中进行探索的可能性很小;他们更有可能在 nano 或 vim 中编辑某些内容,并使用 PHP 或 Python 运行它。这些都可以很好地处理 CR LF,即使它们被配置为默认为 LF。 (3认同)