【问题标题】:Forbidden file/dir names in Linux Darwin and Windows_NT osesLinux Darwin 和 Windows_NT oses 中的禁止文件/目录名称
【发布时间】:2016-04-07 23:29:40
【问题描述】:

我正在尝试为可以运行 node.js 的操作系统的命名约定中的非法内容提供一个结论性的规则列表。

到目前为止,我没有在互联网上阅读许多资源和类似问题,这就是我发现的:
名称中的任何地方都有非法字符:

  1. windows_nt - /?\,:*|"
  2. Linux - /
  3. 达尔文 - / 或许还有 : ? (有人说它在 OS X 上是允许的,但有人说不是,我不太清楚)

非法名称

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

  2. Linux -

  3. 达尔文 -

非法尾随字符

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

  2. Linux -

  3. 达尔文 -

非法的前导字符

  1. windows_nt -

  2. Linux -

  3. 达尔文 -

最大文件/目录名称长度

  1. windows_nt -

  2. Linux -

  3. 达尔文 -

最大路径长度

  1. windows_nt -

  2. Linux -

  3. 达尔文 -

如果你能帮助我填补规则集的空白,我会很高兴。 此外,仅应考虑能够运行 node.js 的操作系统。

【问题讨论】:

  • @sashoalm 不是真的,我已经遇到过这篇文章,它只是在讨论 Linux 和 Windows 名称中的禁用字符。如果您阅读我的帖子,您会发现我已经填写了这些内容,而且我遗漏了上述问题中没有的更多信息。
  • 当然它不仅取决于操作系统,还取决于文件系统?
  • @Biffen 是的,我想确实如此,但如果我没记错的话,只有一些操作系统能够运行 node.js,而其中一些发行版只带有某些文件系统。
  • @Jorayen 是的,但是即使您将自己限制为官方支持的操作系统及其官方支持的文件系统,列表也会很长。

标签: linux node.js darwin windows-nt


【解决方案1】:

达尔文 - / 或许还有 : ? (有人说它在 OS X 上是允许的,但有人说不是,我不太清楚)

:? 在 macOS 的文件名中有效。如果您使用命令行或 API 函数,您可以使用任一字符创建文件名。

Finder(文件管理 GUI)不允许您在文件名/目录名称中使用 :,但它允许您使用 /。这是因为它实际上在文件名中使用了:,但将该字符显示为/

$ ls -l
total 0
drwxr-xr-x  2 user  staff  64  6 Apr 21:40 abc:123

非法名称:

... 在 Linux 和 macOS 上都会出现。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    相关资源
    最近更新 更多