Filenames
強制系統允許我在文件名中插入任何字元
這週我有一次考試,其中一個問題是(有一個正確答案):
文件名可以包含以下字元:
一種)
\
b)
/
C)
?
d)
!
我之所以選擇
c) ?
是因為它對我來說看起來不錯。當我回到家時,我在我的機器(Ubuntu 14.04)上對其進行了測試,並成功創建了文件。在現成的推算器中,正確答案被標記為d) !
。我知道考試是特定於 Windows 的,但在試卷上沒有指定平台。
很明顯,文件名中不支持
\
和字元,但是有沒有辦法強制作業系統允許它們?/
證明支持 even
\
和/
characters 真的很酷。
考慮文件名中允許的字元時,有兩個限制因素——與作業系統相關的限制,以及與文件系統相關的限制。對於這個問題,我假設我們談論的是 Linux 和 ext4 的最新版本。
Linux 只不允許文件名中有兩個字元:
/
,因為它是路徑分隔符,和\0
(ASCII NUL),因為它終止 cstrings。除此之外,特殊名稱.
和..
也被文件系統保留用作導航硬連結。您可以輕鬆地證明您的問題中提到的其他字元是允許的:
$ touch '\' '?' '!' $ ls ! ? \