我這週參加了一場考試,其中一個問題是(有正確答案):
檔案名稱可以包含字元:
A)
\
b)
/
C)
?
d)
!
我選擇是c) ?
因為它對我來說看起來不錯。當我回到家時,我在我的機器(Ubuntu 14.04)上測試了它,並且檔案創建成功。在現成的計算器中,正確答案會被標記為d) !
。
我知道考試是針對 Windows 的,但試卷上沒有指定平台。
很明顯,文件名中不支援\
和字符,/
但有沒有辦法強製作業系統允許它們?
\
如果能夠證明偶數和/
字元都受到支持,那就太酷了。
答案1
在考慮檔案名稱中允許的字元時,有兩個限制因素:與作業系統相關的限制和與檔案系統相關的限制。對於這個問題,我假設我們正在討論最新版本的 Linux 和 ext4。
Linux 只不允許檔案名稱中使用兩個字元:/
,因為它是路徑分隔符,以及\0
(ASCII NUL),因為它終止 cstrings。除此之外,檔案系統還保留特殊名稱.
和..
用作導航硬連結。
您可以輕鬆證明問題中提到的其他字元是允許的:
$ touch '\' '?' '!'
$ ls
! ? \