檔案系統:介面

路徑名稱(path name)

路徑名稱是檔案的位址,寫成穿越目錄樹的一條路線,就像郵政地址從國家一路指到街道與門牌號。它是一串以分隔符號(類 Unix 系統用斜線、Windows 用反斜線)隔開的目錄名稱,結尾是你真正想要的那個檔案。讀懂一條路徑,就告訴你該怎麼走過這棵樹才能抵達檔案。

有兩種,差別在於路線從哪裡起算。絕對路徑從根開始、把每一步都寫出來,所以它以根的標記開頭,例如 /home/alice/notes/today.txt。不管誰來執行、在哪裡,它都指同一個檔案,因為它錨定在樹的頂端。相對路徑則從你的目前工作目錄開始、只給出從那裡起的剩餘步驟,例如 notes/today.txt,意思是「在我現在所在之處裡的 notes 裡的 today.txt」。相對路徑用特殊名稱點(目前目錄)與雙點(父目錄)來移動,所以 ../shared/data.txt 意思是「往上一層,再進入 shared,再到 data.txt」。作業系統解析路徑的方式是:依序讀取每一個目錄、循相符的項目走到下一層,直到抵達目標。

為什麼重要:路徑是在指令、指令稿、程式中為檔案命名的日常語言,而選擇絕對還是相對有著實際的後果。絕對路徑穩固但僵硬;相對路徑簡短又可攜,但取決於你目前在哪裡——同一條相對路徑,會依你的目前工作目錄而指向不同的檔案。一個常見的錯誤是:指令稿用了相對路徑,從某個資料夾執行時可行,從另一個資料夾執行卻莫名其妙地失敗。

站在 /home/alice 時,相對路徑 notes/today.txt 和絕對路徑 /home/alice/notes/today.txt 指的是同一個檔案。但移到 /tmp 後,notes/today.txt 現在指的是別的東西(或什麼都沒有),而那條絕對路徑仍指向 Alice 的檔案。

絕對路徑從根開始;相對路徑從你的目前目錄開始。

相對路徑的意義完全取決於目前工作目錄——同一個字串從不同地方會指名不同檔案。絕對路徑避開了這點,但綁死了確切的樹狀佈局。

又称
pathpathname路徑