Filenames

強制系統允許我在文件名中插入任何字元

  • June 19, 2014

這週我有一次考試,其中一個問題是(有一個正確答案):

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

一種)\

b)/

C)?

d)!

我之所以選擇c) ?是因為它對我來說看起來不錯。當我回到家時,我在我的機器(Ubuntu 14.04)上對其進行了測試,並成功創建了文件。在現成的推算器中,正確答案被標記為d) !

我知道考試是特定於 Windows 的,但在試卷上沒有指定平台。


很明顯,文件名中不支持\和字元,但是有沒有辦法強制作業系統允許它們?/

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

考慮文件名中允許的字元時,有兩個限制因素——與作業系統相關的限制,以及與文件系統相關的限制。對於這個問題,我假設我們談論的是 Linux 和 ext4 的最新版本。

Linux 只不允許文件名中有兩個字元:/,因為它是路徑分隔符,和\0(ASCII NUL),因為它終止 cstrings。除此之外,特殊名稱...也被文件系統保留用作導航硬連結。

您可以輕鬆地證明您的問題中提到的其他字元是允許的:

$ touch '\' '?' '!'
$ ls
!  ?  \

引用自:https://unix.stackexchange.com/questions/137982