强制系统允许我在文件名中插入任何字符

Ion*_*zău 1 special-characters filenames

这周我参加了一场考试,其中一个问题是(有一个正确答案):

文件名可以包含以下字符:

一种) \

b) /

C) ?

d) !

我选择c) ?是因为它对我来说看起来不错。当我回到家时,我在我的机器(Ubuntu 14.04)上对其进行了测试,并成功创建了文件。在现成的计算器中,正确答案标记为d) !

我知道考试是特定于 Windows 的,但在试卷上没有指定平台。


很明显,文件名中不支持\/字符,但是有没有办法强制操作系统允许它们?

证明支持even\/characters真的很酷。

Chr*_*own 5

在考虑文件名中允许的字符时,有两个限制因素 - 与操作系统相关的限制和与文件系统相关的限制。对于这个问题,我假设我们谈论的是最新版本的 Linux 和 ext4。

Linux 只不允许在文件名中使用两个字符:/,因为它是路径分隔符,和\0(ASCII NUL),因为它终止 cstrings。除此之外,特殊名称...也被文件系统保留用作导航硬链接。

您可以轻松证明问题中提到的其他字符是允许的:

$ touch '\' '?' '!'
$ ls
!  ?  \
Run Code Online (Sandbox Code Playgroud)