Mik*_*ler 1 windows filesystems operating-system file dos
正如我们大多数人所知,Windows 禁止在文件名中使用以下字符:
* . " / \ [ ] : ; | = ,
Linux 和其他基于 Unix 的系统仅出于显而易见的原因禁止\0(空字符)和/(路径分隔符)。
为什么 Windows 有这么多禁止字符?
我看过了,我发现的每个答案都是“这是有效的”或“什么是有效的”的一些变体,没有讨论导致 Windows (DOS?) 团队将它们定为非法的设计决策。
要按顺序排列它们:
*被禁止,因为它是一个 Win32 通配符。请注意,与 Linux 不同的是,通配符由 API 处理,而不是由 shell 处理。
.不被禁止(显然!)尽管它出现在文件名的末尾时确实具有特殊的语义,即它被删除。这是为了与 FAT 文件系统和/或为它们设计的应用程序向后兼容。
"是内核通配符。
反斜杠是路径分隔符,为了与 UNIX 兼容,正斜杠也被视为路径分隔符(有时)。
[并且]不被禁止。
: 用于指示备用数据流。
; 不被禁止。
|- 我不确定这个。可能是因为命令行上的特殊含义,尽管文件名中还有其他具有特殊含义的字符没有被禁止。
=并且,不被禁止。
不在您列表中的其他禁止字符:
? 是一个 Win32 通配符。
<,>是内核通配符。
以句点相同的方式从文件名的末尾修剪空格。
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |