強制系統允許我在檔案名稱中插入任何字符

強制系統允許我在檔案名稱中插入任何字符

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

檔案名稱可以包含字元:

A)\

b)/

C)?

d)!

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

我知道考試是針對 Windows 的,但試卷上沒有指定平台。


很明顯,文件名中不支援\和字符,/有沒有辦法強製作業系統允許它們?

\如果能夠證明偶數和/字元都受到支持,那就太酷了。

答案1

在考慮檔案名稱中允許的字元時,有兩個限制因素:與作業系統相關的限制和與檔案系統相關的限制。對於這個問題,我假設我們正在討論最新版本的 Linux 和 ext4。

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

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

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

相關內容