我这周参加了一场考试,其中一个问题是(有一个正确答案):
文件名可以包含字符:
A)
\
b)
/
C)
?
d)
!
我选择是c) ?
因为它对我来说看起来不错。当我回到家时,我在我的机器(Ubuntu 14.04)上测试了它,并且文件创建成功。在现成的计算器中,正确答案被标记为d) !
。
我知道考试是针对 Windows 的,但试卷上没有指定平台。
很明显,文件名不支持\
和字符,/
但有没有办法强制操作系统允许它们?
\
如果能够证明偶数和/
字符都受到支持,那真是太酷了。
答案1
在考虑文件名中允许的字符时,有两个限制因素:与操作系统相关的限制和与文件系统相关的限制。对于这个问题,我假设我们正在讨论最新版本的 Linux 和 ext4。
Linux 只不允许文件名中使用两个字符:/
,因为它是路径分隔符,以及\0
(ASCII NUL),因为它终止 cstrings。除此之外,文件系统还保留特殊名称.
和..
用作导航硬链接。
您可以轻松证明问题中提到的其他字符是允许的:
$ touch '\' '?' '!'
$ ls
! ? \