最最基礎的乾貨:Linux中的絕對路徑和相對路徑

roc_guo發表於2022-09-10

路徑是Linux中最基本的概念之一,這是每個Linux使用者都必須知道的。

路徑是指檔案和目錄的引用方式。它給出了檔案或目錄在 Linux 目錄結構中的位置,由名稱和斜槓組成。

/home/abhishek/scripts

作為一個系統使用者,當您想要訪問某個檔案或目錄,或者必須為 或 指定檔案或目錄的位置時,就會使用路徑。

cat /home/abhishek/scripts/my_script.sh

請記住,如果路徑以斜槓“/”開頭,則第一個斜槓表示根,路徑中的其餘斜線只是分隔符。初學者經常混淆根斜槓和分隔符斜槓。
最最基礎的乾貨:Linux中的絕對路徑和相對路徑最最基礎的乾貨:Linux中的絕對路徑和相對路徑
在上圖中,第一個路徑是以根路徑(/)開始的,第二個路徑不是以 / 開始的。這兩種寫法都是正確的,第一個是絕對路徑,第二個是相對路徑。

Linux中的絕對路徑和相對路徑

絕對路徑始終從根目錄(/)開始,比如:

/home/abhishek/scripts/my_scripts.sh

相對路徑從當前目錄開始。比如,如果你在 /home 目錄中,希望訪問 my_script.sh 檔案,那麼訪問的路徑應該是:

abhishek/scripts/my_scripts.sh
理解絕對路徑和相對路徑之間的差異

我們都知道Linux中目錄結構是一個樹,從根(/)開始,然後產生分支。

假設我們現在目錄abhishek中,並且希望訪問檔案my_scripts.sh,如下圖所示兩種路徑的表示:

最最基礎的乾貨:Linux中的絕對路徑和相對路徑最最基礎的乾貨:Linux中的絕對路徑和相對路徑

假設我們使用 ls  檢視 my_script.sh 的檔案資訊,那麼使用絕對路徑:

ls -l /home/abhishek/scripts/my_script.sh

然後,相對路徑:

ls -l scripts/my_script.sh

那麼,以上兩種方式,除了檔案路徑不一樣以外,其他的完全一樣:

最最基礎的乾貨:Linux中的絕對路徑和相對路徑最最基礎的乾貨:Linux中的絕對路徑和相對路徑

注:在Linux中,檔名區分大小寫。可以有大寫、小寫、數字、點、中劃線、下劃線以及除了斜槓(/)之外的大多數字符。斜槓(/)作為保留字元,用於根目錄和用於分割路徑中的目錄。

使用帶有 . 和 .. 目錄的相對路徑

有兩種特殊的相對路徑:
  • .(一個點):表示路徑中的當前路徑;
  • ..(兩個點):表示父目錄,即上一級目錄。
  • 如下圖,我們要從 abhishek 目錄中,到 prakash 目錄中去。

    最最基礎的乾貨:Linux中的絕對路徑和相對路徑最最基礎的乾貨:Linux中的絕對路徑和相對路徑

    切換目錄,使用 cd 命令。如果使用絕對路徑,可以這樣:

cd /home/prakash

使用相對路徑的話 ,需要用到特殊的相對路徑 .. :

cd ../prakash

為什麼要使用 .. 呢?因為相對路徑要從當前目錄開始,我們需要告訴 cd 命令向上一級,將我們帶到 /home 目錄,然後從那裡在進入到 prakash 目錄。

絕對路徑始終以 / 開始,並且與當前位置無關;相對路徑取決於當前的位置。

絕對路徑和相對路徑,應該使用哪個呢?

老實說,這個問題沒有直截了當的答案。這要視情況而定。

如果你當前所在的目錄層次結構比較深,並且需要向上或者向下一級移動,那麼使用相對路徑會更簡單。

假設你位於

/home/username/programming/project/interface/src/header 目錄中,並且需要訪問 /home/username/programming/project/interface/bin 目錄中的某些內容。使用相對路徑可以避免鍵入所有冗長的目錄名,只需在此處使用.././bin即可。

但是,如果你要從 /home/username/programming/project/interface/src/header目錄訪問 /usr/bin 目錄中的某些內容,那麼使用 ../../../../../../usr/bin 會比較麻煩,這個時候使用絕對路徑更方便。

另一種情況,是在 或者程式中使用路徑。如果位置是確定的,那麼就使用絕對路徑;如果專案中有多個資料夾,並且需要在其中之間切換,那麼此處需要使用相對路徑,因為你不確定終端使用者會將程式放在什麼地方。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2914265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章