linux - Linux Darwin 和 Windows_NT 系统中的禁止文件/目录名称

标签 linux node.js darwin windows-nt

我正试图提出一个结论性的规则列表,说明在可以运行 node.js 的操作系统的命名约定中什么是非法的。

到目前为止,我没有在互联网上阅读许多资源和类似问题,而是发现了以下内容:
名称中任何位置的非法字符:

  1. windows_nt -/?<>\,:*|"
  2. Linux -/
  3. Darwin -/也许:? (有人说它在 OS X 上是允许的,但有人说它不是,我不是很清楚)

非法名称:

  1. windows_nt - CON、PRN、AUX、CLOCK$、NUL、COM1-9、LPT1-9(一些其他设备名称未包括在内,因为它们仅在旧 dos 上是非法的发行版和 node.js 不适用于它们)

  2. Linux -

  3. Darwin -

非法尾随字符:

  1. windows_nt - . (点)和(空格)

  2. Linux -

  3. Darwin -

非法的前导字符:

  1. windows_nt -

  2. Linux -

  3. Darwin -

最大文件/目录名称长度:

  1. windows_nt -

  2. Linux -

  3. Darwin -

最大路径长度:

  1. windows_nt -

  2. Linux -

  3. 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

Finder window

illegal names:

... 在 Linux 和 macOS 上都会浮现在脑海中。

max file/dir name length:

在 APFS(默认文件系统)上的 macOS 上,单个目录或文件名的最大长度似乎是 255。但是完整路径可能比这长得多。

关于linux - Linux Darwin 和 Windows_NT 系统中的禁止文件/目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488979/

相关文章:

swift - arc4random() 和 arc4random_uniform() 不是真正随机的?

objective-c - 多少()宏 objective-c

linux - 如何添加用户以允许 ssh 隧道访问?

linux - Gall 和 Lempitsky 如何编译 opencv 霍夫森林实现

node.js - 有什么办法可以从 Nuxt+Node 项目中生成可执行文件 (.exe) 吗?

node.js - 如何重试mongodb事务?

c - 为什么这个指针 Typedef 指向一个结构

linux - 无法在 Linux 上启用 ICU 库支持

linux - 在子 shell 中运行的脚本不运行与调用脚本相同的 shell

node.js - Node 从用户代理检测不安全的浏览器