路徑是 Linux 系統中一個非常重要的概念,每個 Linux 使用者都應該了解它。
它是指檔案和目錄在 Linux 目錄結構中的位置,由名稱和斜線組成。透過路徑,我們可以快速找到檔案或目錄的位置。
/home/abhishek/scripts
作為一個系統用戶,當您想要存取某個檔案或目錄,或必須為指令或腳本指定檔案或目錄的位置時,就會使用路徑。
cat /home/abhishek/scripts/my_script.sh
請記住,如果路徑以斜線「/」開頭,則第一個斜線表示根,路徑中的其餘斜線只是分隔符號。初學者經常混淆根斜線和分隔符號斜線。
在上圖中,第一個路徑是以根路徑(/)開始的,第二個路徑不是以 / 開始的。這兩種寫法都是正確的,第一個是絕對路徑,第二個是相對路徑。
絕對路徑總是從根目錄(/)開始,例如:
/home/abhishek/scripts/my_scripts.sh
相對路徑從目前目錄開始。例如,如果你在 /home 目錄中,希望存取 my_script.sh 文件,那麼存取的路徑應該是:
abhishek/scripts/my_scripts.sh
我們都知道Linux中目錄結構是一個樹,從根(/)開始,然後產生分支。
假設我們現在目錄abhishek中,並且希望存取檔案my_scripts.sh,如下圖所示兩種路徑的表示:
假設我們使用 ls 指令查看 my_script.sh 的檔案訊息,那麼使用絕對路徑:
ls -l /home/abhishek/scripts/my_script.sh
然後,相對路徑:
ls -l scripts/my_script.sh
那麼,以上兩種方式,除了檔案路徑不一樣以外,其他的完全一樣:
註:在Linux中,檔案名稱區分大小寫。可以有大寫、小寫、數字、點、中劃線、下劃線以及除了斜線(/)之外的大多數字元。斜線(/)作為保留字符,用於根目錄和用於分割路徑中的目錄。
使用帶有 . 和 .. 目錄的相對路徑
#**
**
有兩種特殊的相對路徑:
如下圖,我們要從 abhishek 目錄中,到 prakash 目錄中去。
切換目錄,使用 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 會比較麻煩,這時候使用絕對路徑比較方便。
另一種情況,是在腳本或程式中使用路徑。如果位置是確定的,那麼就使用絕對路徑;如果專案中有多個資料夾,並且需要在其中之間切換,那麼此處需要使用相對路徑,因為您不確定最終使用者會將程式放在什麼地方。
以上是Linux 中的絕對路徑和相對路徑,有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!