中间点(中间标点)是否在 EXT4 等现代文件系统上被接受?

中间点(中间标点)是否在 EXT4 等现代文件系统上被接受?

在现代文件系统(如 EXT4)中,文件夹名称中可以使用中间的点(又称中间点)吗?我指的是这个字符:https://www.middot.net

维基百科对 EXT4 有如下描述:

文件名中允许的字符:除 NUL ('\0') 和 '/' 以及特殊文件名“.”和“..”之外的所有字节,这些文件名并非被禁止,但总是用于各自的特殊用途。

所以我想插入符号应该没问题。我认为对于 CLI 来说,插入符号可能比较麻烦,尽管生成符号很CTRL+SHIFT+u 00b7容易。我只会使用 GUI 文件管理器来访问我的文件夹和文件。

答案1

您已经引用了该问题的答案。

文件系统仅关心您在文件名中输入的内容是否与字符的某些技术用途相冲突。基本上,文件名对于文件系统来说是二进制 blob。以下是一些例外情况:

  • /角色不能处于文件名因为它用于分隔路径中的文件名。(显然它们也可以位于路径名中。)
  • 字符\0不能出现在文件名中,因为 unix 使用 C 字符串来表示文件名,而 C 字符串以 结尾\0。从技术上讲,每个文件名在内部都只有一个\0,位于末尾,可能更正确。但显然,在路径名中,只有路径名以 \0 结尾,路径名中除最后一个文件名外的所有文件名都以 结尾/
  • 仅有的两个特殊文件名是...——这些是合法文件名,但您不能创建、删除、重命名或以其他方式对其进行写入操作。(它们用于表示当前目录和父目录。)

在传统 unix 文件系统和 unix 文件系统 API 的范围内,情况确实如此。但这不适用于其他应用程序。众所周知,文件名中的特殊字符(尤其是空格)会导致程序(如 shell 和 shell 脚本)出现各种问题和错误,这些程序需要使用空格作为单词分隔符。(shell 支持多种转义空格和潜在空格的方法,但有缺陷的 shell 脚本可能无法正确使用这些方法。)Unicode 字符不太可能导致问题,但不期望文件名中有二进制非 ASCII 字符的有缺陷的程序可能会崩溃。显然,文件名中含糊不清的 unicode 字符可能会让人崩溃。但这超出了文件系统的范围,它根本不在乎。

相关内容