App下載

為什么文件名要小寫?

猿友 2020-10-22 14:36:02 瀏覽數(shù) (3944)
反饋

上周,《中文技術(shù)文檔寫作規(guī)范 》加入了文件的命名規(guī)則。

"文件名建議只使用小寫字母,不使用大寫字母。"

"為了醒目,某些說明文件的文件名,可以使用大寫字母,比如README、LICENSE。"

網(wǎng)友看見了,就提問為什么文件名要小寫?

img

說實話,雖然這是 Linux 傳統(tǒng),我卻從沒認真想過原因。趕緊查資料,結(jié)果發(fā)現(xiàn)四個很有說服力的理由,支持這樣做。

一、可移植性

Linux 系統(tǒng)是大小寫敏感的,而 Windows 系統(tǒng)和 Mac 系統(tǒng)正好相反,大小寫不敏感。一般來說,這不是大問題。

但是,如果兩個文件名只有大小寫不同,其他都相同,跨平臺就會出問題。

  • foobar
  • Foobar
  • FOOBAR
  • fOObAr

上面四個文件名,Windows 系統(tǒng)會把它們都當作foobar。如果它們同時存在,你可能沒辦法打開后面三個文件。

另一方面,在 Mac 系統(tǒng)上開發(fā)時,有時會疏忽,寫錯大小寫。

// 正確文件名是 MyModule.js
const module = require('./myModule');

上面的代碼在 Mac 上面可以運行,因為 Mac 認為MyModule.jsmyModule.js是同一個文件。但是,一旦代碼到服務器運行就會報錯,因為 Linux 系統(tǒng)找不到myModule.js

如果所有的文件名都采用小寫,就不會出現(xiàn)上面的問題,可以保證項目有良好的可移植性。

二、易讀性

小寫文件名通常比大寫文件名更易讀,比如accessibility.txt就比ACCESSIBILITY.TXT易讀。

有人習慣使用駝峰命名法,單詞的第一個字母大寫,其他字母小寫。這種方法的問題是,如果遇到全部是大寫的縮略詞,就會不適用。

img

比如,一個姓李的紐約特警,無論寫成NYPoliceSWATLee還是NyPoliceSwatlee,都怪怪的,還是寫成ny-police-swat-lee比較容易接受。

三、易用性

某些系統(tǒng)會生成一些預置的用戶目錄,采用首字母大寫的目錄名。比如,Ubuntu 在用戶主目錄會默認生成Downloads、 Pictures、Documents等目錄。

img

Mac 系統(tǒng)更過分,一部分系統(tǒng)目錄也是大寫的,比如/Library/Audio/Apple Loops/。

另外,某些常見的配置文件或說明文件,也采用大寫的文件名,比如Makefile、INSTALLCHANGELOG、.Xclients.Xauthority等等。

所以,用戶的文件都采用小寫文件名,就很方便與上面這些目錄或文件相區(qū)分。

如果你打破砂鍋問到底,為什么操作系統(tǒng)會采用這樣的大寫文件名?原因也很簡單,因為早期 Unix 系統(tǒng)上,ls命令先列出大寫字母,再列出小寫字母,大寫的路徑會排在前面。因此,如果目錄名或文件名是大寫的,就比較容易被用戶首先看到。

img

四、便捷性

文件名全部小寫,還有利于命令行操作。比如,某些命令可以不使用-i參數(shù)了。

# 大小寫敏感的搜索
$ find . -name abc
$ locate "*.htmL"


# 大小寫不敏感的搜索
$ find . -iname abc
$ locate -i "*.HtmL"

img

另外,大寫字母需要按下 Shift 鍵,多多少少有些麻煩。如果文件名小寫,就不用碰這個鍵了,不僅省事,還可以提高打字速度。

程序員長時間使用鍵盤,每分鐘少按幾次 Shift,一天下來就可以省掉很多手指動作。長年累月,也是對自己身體的一種保護。

綜上所述,文件名全部使用小寫字母和連詞線(all-lowercase-with-dashes),是一種值得推廣的正確做法。

相關(guān)閱讀

0 人點贊