答案1
NUL
并/
具有其指定的系统功能。其他角色则不然。
这就是它的基础——剩下的就是观点、猜测和历史。听到、读到等,仅作为填料不是辩论或争论:
- 通过禁止某些字符,您会增加文件系统本身的复杂性,这与损害它是一样的。
- 在各种系统上哪些字节构成换行符呢?
<CR>
与<LF>
等 - 如果远程系统决定在 NFS 上创建带有换行符的文件怎么办?
- 如果文件名损坏而文件内容完好怎么办?
- 如果应用程序在文件名中编码信息怎么办?
继续下去
- 修复用户软件中的错误是系统的工作吗?
- 系统是否应该在其根级别上保护用户免受自身侵害?
- 各种 shell 的内部实现方式是否应该决定哪些文件名被视为合法?
基本操作系统没有设置限制。进出系统的信息是字节流。如果字节没有特殊含义,则不要通过添加应在用户空间处理的检查来创建开销。
无论如何,最大的问题很可能是允许换行符和其他控制字符的相当长的历史。
另一种情况是禁止什么。你提到了换行符,但在 UNIX 石器时代的讨论中,这个问题一直存在争议,然后还包括其他字符。应该*
禁止吗?以 开头的文件名怎么样-
?和DEL
呢ESC
?是否应该禁止所有控制字符?等等等等。
不幸的是,我不记得创始人或代码维护者对这个主题的任何引用。