我正试图提出一个结论性的规则列表,说明在可以运行 node.js 的操作系统的命名约定中什么是非法的。
到目前为止,我没有在互联网上阅读许多资源和类似问题,而是发现了以下内容:
名称中任何位置的非法字符:
- windows_nt -/?<>\,:*|"
- Linux -/
- Darwin -/也许:? (有人说它在 OS X 上是允许的,但有人说它不是,我不是很清楚)
非法名称:
windows_nt - CON、PRN、AUX、CLOCK$、NUL、COM1-9、LPT1-9(一些其他设备名称未包括在内,因为它们仅在旧 dos 上是非法的发行版和 node.js 不适用于它们)
Linux -
Darwin -
非法尾随字符:
windows_nt - . (点)和(空格)
Linux -
Darwin -
非法的前导字符:
windows_nt -
Linux -
Darwin -
最大文件/目录名称长度:
windows_nt -
Linux -
Darwin -
最大路径长度:
windows_nt -
Linux -
Darwin -
如果你能帮我填补规则集的空白,我会很高兴。 此外,只应考虑能够运行 node.js 的操作系统。
最佳答案
Darwin - / and maybe : ? (some say it's allowed on OS X but some says it's not, not really clear to me)
:
和 ?
在 macOS 的文件名中有效。如果您使用命令行或 API 函数,则可以使用任一字符创建文件名。
Finder(文件管理 GUI)不允许您在文件名/目录名中使用 :
,但它将允许您使用 /
。这是因为它实际上在文件名中使用了 :
,但将该字符显示为 /
。
$ ls -l
total 0
drwxr-xr-x 2 user staff 64 6 Apr 21:40 abc:123
illegal names:
.
和 ..
在 Linux 和 macOS 上都会浮现在脑海中。
max file/dir name length:
在 APFS(默认文件系统)上的 macOS 上,单个目录或文件名的最大长度似乎是 255。但是完整路径可能比这长得多。
关于linux - Linux Darwin 和 Windows_NT 系统中的禁止文件/目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488979/