Linux絕對(duì)路徑與相對(duì)路徑的概念是什么

本篇內(nèi)容介紹了“Linux絕對(duì)路徑與相對(duì)路徑的概念是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

吳橋網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,吳橋網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為吳橋1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的吳橋做網(wǎng)站的公司定做!

在Linux中,絕對(duì)路徑是指始終從根目錄“/”開始寫起的文件路徑,相對(duì)路徑是從當(dāng)前所在的工作目錄開始寫起的文件路徑。絕對(duì)路徑是相對(duì)于根路徑“/”的,只要文件不移動(dòng)位置,那么它的絕對(duì)路徑是恒定不變的;而相對(duì)路徑是相對(duì)于當(dāng)前所在目錄而言的,隨著程序的執(zhí)行,當(dāng)前所在目錄可能會(huì)改變,因此文件的相對(duì)路徑不是固定不變的。

Linux中什么是相對(duì)路徑

路徑是Linux中最基本的概念之一,這是每個(gè)Linux用戶都必須知道的。

在 Linux 中,路徑是指文件和目錄的引用方式;它給出了文件或目錄在 Linux 目錄結(jié)構(gòu)中的位置,由名稱和斜杠組成。簡(jiǎn)單的理解一個(gè)文件的路徑,指的就是該文件存放的位置。例如, /home/cat 就表示的是 cat 文件所存放的位置。只要我們告訴 Linux 系統(tǒng)某個(gè)文件存放的準(zhǔn)確位置,那么它就可以找到這個(gè)文件。

作為一個(gè)系統(tǒng)用戶,當(dāng)您想要訪問某個(gè)文件或目錄,或者必須為命令或腳本指定文件或目錄的位置時(shí),就會(huì)使用路徑。

cat /home/abhishek/scripts/my_script.sh

請(qǐng)記住,如果路徑以斜杠“/”開頭,則第一個(gè)斜杠表示根,路徑中的其余斜線只是分隔符。初學(xué)者經(jīng)常混淆根斜杠和分隔符斜杠。

Linux絕對(duì)路徑與相對(duì)路徑的概念是什么

在上圖中,第一個(gè)路徑是以根路徑(/)開始的,第二個(gè)路徑不是以 / 開始的。這兩種寫法都是正確的,第一個(gè)是絕對(duì)路徑,第二個(gè)是相對(duì)路徑。

絕對(duì)路徑與相對(duì)路徑是什么

指明一個(gè)文件存放的位置,有 2 種方法,分別是使用絕對(duì)路徑和相對(duì)路徑。

我們知道,Linux 系統(tǒng)中所有的文件(目錄)都被組織成以根目錄“/”開始的倒置的樹狀結(jié)構(gòu),如圖 1 所示。

Linux絕對(duì)路徑與相對(duì)路徑的概念是什么
圖 1 Linux系統(tǒng)文件組織結(jié)構(gòu)示意圖

絕對(duì)路徑

絕對(duì)路徑一定是由根目錄 / 開始寫起,比如:

/home/abhishek/scripts/my_scripts.sh

使用絕對(duì)路徑的表示方式指明 bin 文件所在的位置,該路徑應(yīng)寫為 /usr/bin,測(cè)試代碼如下:

[root@localhost ~]# bin
bash: bin: command not found   <-- 沒有找到
[root@localhost ~]# /usr/bin
bash: /usr/bin: is a directory   <-- 是一個(gè)文件

可以看到,如果僅傳遞給 Linux 系統(tǒng)一個(gè)文件名,它無法找到指定文件;而當(dāng)將 bin 文件的絕對(duì)路徑傳遞 Linux 系統(tǒng)時(shí),它就可以成功找到。

相對(duì)路徑

和絕對(duì)路徑不同,相對(duì)路徑不是從根目錄 / 開始寫起,而是從當(dāng)前所在的工作目錄開始寫起。使用相對(duì)路徑表明某文件的存儲(chǔ)位置時(shí),經(jīng)常會(huì)用到前面講到的 2 個(gè)特殊目錄,即當(dāng)前目錄(用 . 表示)和父目錄(用 .. 表示)。

舉個(gè)例子,當(dāng)我們使用 root 身份登錄 Linux 系統(tǒng)時(shí),當(dāng)前工作目錄默認(rèn)為 /root,如果此時(shí)需要將當(dāng)前工作目錄調(diào)整到 root 的子目錄 Desktop 中,當(dāng)然可以使用絕對(duì)路徑,示例代碼如下:

[root@localhost ~]# pwd     <-- 顯示當(dāng)前所在的工作路徑
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop

可以看到,通過使用絕對(duì)路徑,我們成功地改變了當(dāng)前工作路徑。但除此之外,使用相對(duì)路徑的方式會(huì)更簡(jiǎn)單。因?yàn)槟壳疤幱?/root 的位置,而 Desktop 就位于當(dāng)前目錄下,所以:

[root@localhost ~]# pwd    <-- 顯示當(dāng)前所在的工作路徑
/root
[root@localhost ~]# cd ./Desktop
[root@localhost Desktop]# pwd
/root/Desktop

此代碼中,./Desktop 表示的就是 Destop 文件相對(duì)于 /root 所在的路徑。

再舉一個(gè)例子,如果以 root 身份登錄 Linux 系統(tǒng),并實(shí)現(xiàn)將當(dāng)前工作目錄由 /root 轉(zhuǎn)換為 /usr 目錄,有以下 2 種方式:

#使用絕對(duì)路徑
[root@localhost ~]# pwd <-- 顯示當(dāng)前所在的工作路徑
/root
[root@localhost ~]# cd /usr
[root@localhost ~]# pwd
/usr
#使用相對(duì)路徑
[root@localhost ~]# pwd <-- 顯示當(dāng)前所在的工作路徑
/root
[root@localhost ~]# cd ../usr <-- 相對(duì) root,usr 位于其父目錄 /,因此這里要用到 ..
[root@localhost ~]# pwd
/usr

總之,絕對(duì)路徑是相對(duì)于根路徑 / 的,只要文件不移動(dòng)位置,那么它的絕對(duì)路徑是恒定不變的;而相對(duì)路徑是相對(duì)于當(dāng)前所在目錄而言的,隨著程序的執(zhí)行,當(dāng)前所在目錄可能會(huì)改變,因此文件的相對(duì)路徑不是固定不變的。

絕對(duì)路徑和相對(duì)路徑之間的差異

我們都知道Linux中目錄結(jié)構(gòu)是一個(gè)樹,從根(/)開始,然后產(chǎn)生分支。

假設(shè)我們現(xiàn)在目錄abhishek中,并且希望訪問文件my_scripts.sh,如下圖所示兩種路徑的表示:

Linux絕對(duì)路徑與相對(duì)路徑的概念是什么

假設(shè)我們使用 ls 命令查看 my_script.sh 的文件信息,那么使用絕對(duì)路徑:

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

然后,相對(duì)路徑:

ls -l scripts/my_script.sh

那么,以上兩種方式,除了文件路徑不一樣以外,其他的完全一樣:

Linux絕對(duì)路徑與相對(duì)路徑的概念是什么

注:在Linux中,文件名區(qū)分大小寫。可以有大寫、小寫、數(shù)字、點(diǎn)、中劃線、下劃線以及除了斜杠(/)之外的大多數(shù)字符。斜杠(/)作為保留字符,用于根目錄和用于分割路徑中的目錄。

使用帶有 . 和 .. 目錄的相對(duì)路徑

有兩種特殊的相對(duì)路徑:

  • .(一個(gè)點(diǎn)):表示路徑中的當(dāng)前路徑;

  • ..(兩個(gè)點(diǎn)):表示父目錄,即上一級(jí)目錄。

如下圖,我們要從 abhishek 目錄中,到 prakash 目錄中去。

Linux絕對(duì)路徑與相對(duì)路徑的概念是什么

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

cd /home/prakash

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

cd ../prakash

為什么要使用 .. 呢?因?yàn)橄鄬?duì)路徑要從當(dāng)前目錄開始,我們需要告訴 cd 命令向上一級(jí),將我們帶到 /home 目錄,然后從那里在進(jìn)入到 prakash 目錄。

絕對(duì)路徑始終以 / 開始,并且與當(dāng)前位置無關(guān);相對(duì)路徑取決于當(dāng)前的位置。

絕對(duì)路徑和相對(duì)路徑,應(yīng)該使用哪個(gè)呢?

老實(shí)說,這個(gè)問題沒有直截了當(dāng)?shù)拇鸢?。這要視情況而定。

如果你當(dāng)前所在的目錄層次結(jié)構(gòu)比較深,并且需要向上或者向下一級(jí)移動(dòng),那么使用相對(duì)路徑會(huì)更簡(jiǎn)單。

假設(shè)你位于

/home/username/programming/project/interface/src/header 目錄中,并且需要訪問 /home/username/programming/project/interface/bin 目錄中的某些內(nèi)容。使用相對(duì)路徑可以避免鍵入所有冗長(zhǎng)的目錄名,只需在此處使用.././bin即可。

但是,如果你要從 /home/username/programming/project/interface/src/header目錄訪問 /usr/bin 目錄中的某些內(nèi)容,那么使用 ../../../../../../usr/bin 會(huì)比較麻煩,這個(gè)時(shí)候使用絕對(duì)路徑更方便。

另一種情況,是在腳本或者程序中使用路徑。如果位置是確定的,那么就使用絕對(duì)路徑;如果項(xiàng)目中有多個(gè)文件夾,并且需要在其中之間切換,那么此處需要使用相對(duì)路徑,因?yàn)槟悴淮_定最終用戶會(huì)將程序放在什么地方。

“Linux絕對(duì)路徑與相對(duì)路徑的概念是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

標(biāo)題名稱:Linux絕對(duì)路徑與相對(duì)路徑的概念是什么
新聞來源:http://muchs.cn/article48/iepdhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣定制網(wǎng)站、網(wǎng)站導(dǎo)航、用戶體驗(yàn)面包屑導(dǎo)航、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)