Linux 中的相對路徑和絕對路徑有什么區(qū)別?
絕對路徑名和相對路徑名是在 Linux 上指定目錄或文件的虛擬地址的兩種方式。那么這兩種路徑類型之間有什么區(qū)別,您應該在命令中使用哪一種?現(xiàn)在就讓我們一起來看看吧。
Linux 中的相對路徑和絕對路徑
如果您曾經(jīng)使用過任何基于參數(shù)的 Linux 命令,如 cd 或 ls,您應該知道有多種方法可以指定目錄或文件的路徑。
您可能更喜歡使用普通的路徑表達式,或者,如果您是高級 Linux 用戶,可以使用復雜的正則表達式將文件名或目錄名傳遞給程序。無論哪種方式,在 Linux 上只有兩種方法可以指定目錄路徑:絕對路徑和相對路徑。
絕對路徑表達式
絕對路徑始終從根目錄開始,到您要指向的實際目錄或文件結(jié)束。在使用絕對路徑表達式時,您需要鍵入層次結(jié)構中存在的所有子目錄名,這些子目錄名通向最終位置。
例如,如果您想使用絕對路徑表達式指向 /var/www 目錄中的 /html/linuxmi.com,您可以使用:
…其中表達式開頭的 / 表示 Linux 上的根目錄。
相對路徑表達式
另一方面,相對路徑是指使用另一個路徑(通常是當前工作目錄)作為其根或基的路徑表達式。顧名思義,它與系統(tǒng)上的現(xiàn)有路徑“相對”。
例如,如果您當前位于 /var/www 目錄中,并且需要指向 /html/linuxmi.com,則可以使用:
…其中 . 表示您所在的當前目錄。您可以使用 cd 命令更改當前工作目錄。
除了單個句點(.)之外,相對路徑表達式還使用雙句點(..)來引用父目錄。
例如,假設您位于以下目錄結(jié)構中的 /www 文件夾中:
在上述路徑表達式中,. 將表示/www目錄,而 .. 將指向 /var 目錄。如果在 /var/www 中需要訪問/var中的另一個目錄 /mail,您可以使用:
就這么簡單。
絕對與相對:哪種路徑表達式更好?
盡管路徑表達式對于桌面用戶來說似乎很簡單且不重要,但在各種使用情況下,使用錯誤的路徑名可能會導致很多未經(jīng)請求的不便。Web 服務器就是一個很好的例子。
作為一名在 Linux 服務器上托管的項目中工作的 Web 開發(fā)人員,您需要訪問項目目錄中的文件。在這里,使用相對路徑表達式是標準的,因為項目的子目錄名或域名的任何更改都可能導致鏈接斷開。
Linux 終端目錄列表
您可以通過一個桌面用戶可能會更好地理解的簡單示例來理解這一點。/ 字符表示Linux系統(tǒng)上的根目錄。想象一下,如果您突然改變了這一點,并使 / 字符指向主目錄。許多包含絕對路徑表達式的命令將無法工作,因為 / 現(xiàn)在已被重新分配到其他目錄。
使用相對路徑表達式的另一個優(yōu)點是,由于它們與當前工作目錄相對,因此可以節(jié)省鍵入不必要字符的時間。
這里唯一的問題是與相對表達式的復雜性和學習曲線。但這在絕對路徑表達式中也很常見;要成為使用絕對路徑的高手,您需要熟悉 Linux 目錄層次結(jié)構。您可以使用 tree 命令查看整個 Linux 目錄樹,并使絕對路徑表達式更容易。
了解 Linux 目錄層次結(jié)構
Linux 目錄結(jié)構對于運行基于 Linux 的操作系統(tǒng)的所有機器都是通用的。您可以使用 ls 或 tree 等命令來了解有關文件和文件夾在計算機上的結(jié)構的更多信息。