許多人對於檔案附檔名甚至是檔名命名方式常有不同習慣,甚至是因為不小心,導致附檔名有大小寫區分。最常見的就是 file1.jpg, file2.JPG, file3.png, file5.PNG。
最近在使用 heroku 上就遇到有關大小寫的問題,會有幾個狀況發生:
- 在網址的附檔名上有大小寫區分
- 瀏覽器的 cache 也會有
- git 也有此問題
最基本的作法就是將所有檔名與附檔名都改為小寫,這邊可以使用指令完成
rename 'y/A-Z/a-z/' *
但若是 MAC 或是 Windows 這種 case-insensitive(大小寫沒差)的系統,需要加上參數 -f
rename -f 'y/A-Z/a-z/' *
順道一提,基本上 Linux 通常都是 case-sensitive 的系統。
那在本機(MAC)做完後發現,git 沒有任何動靜,即使改了幾十個 image 的檔名從大寫變成小寫,最後發現問題出在 GIT。
GIT 在預設狀態是不管大小寫,都視為同樣的檔案,不會有任何變動的反應,需要設定告知目前系統是有大小寫區分的:
git config core.ignorecase false
設定完後剛所有變動檔名的檔案就是可以進到 stage 的狀態了!