在Linux中,絕對路徑是指始終從根目錄“/”開始寫起的文件路徑,相對路徑是從當前所在的工作目錄開始寫起的文件路徑。絕對路徑是相對于根路徑“/”的,只要文件不移動位置,那么它的絕對路徑是恒定不變的;而相對路徑是相對于當前所在目錄而言的,隨著程序的執行,當前所在目錄可能會改變,因此文件的相對路徑不是固定不變的。
Linux中什么是相對路徑
路徑是Linux中最基本的概念之一,這是每個Linux用戶都必須知道的。
在 Linux 中,路徑是指文件和目錄的引用方式;它給出了文件或目錄在 Linux 目錄結構中的位置,由名稱和斜杠組成。簡單的理解一個文件的路徑,指的就是該文件存放的位置。例如, /home/cat
就表示的是 cat 文件所存放的位置。只要我們告訴 Linux 系統某個文件存放的準確位置,那么它就可以找到這個文件。
作為一個系統用戶,當您想要訪問某個文件或目錄,或者必須為命令或腳本指定文件或目錄的位置時,就會使用路徑。
cat/home/abhishek/scripts/my_script.sh
請記住,如果路徑以斜杠“/”開頭,則第一個斜杠表示根,路徑中的其余斜線只是分隔符。初學者經?;煜备芎头指舴备?。
在上圖中,第一個路徑是以根路徑(/)開始的,第二個路徑不是以 / 開始的。這兩種寫法都是正確的,第一個是絕對路徑,第二個是相對路徑。
絕對路徑與相對路徑是什么
指明一個文件存放的位置,有 2 種方法,分別是使用絕對路徑和相對路徑。
我們知道,Linux 系統中所有的文件(目錄)都被組織成以根目錄“/”開始的倒置的樹狀結構,如圖 1 所示。
圖 1 Linux系統文件組織結構示意圖
絕對路徑
絕對路徑一定是由根目錄 / 開始寫起,比如:
/home/abhishek/scripts/my_scripts.sh
使用絕對路徑的表示方式指明 bin 文件所在的位置,該路徑應寫為 /usr/bin,測試代碼如下:
[root@localhost~]#binbash:bin:commandnotfound<--沒有找到[root@localhost~]#/usr/binbash:/usr/bin:isadirectory<--是一個文件
可以看到,如果僅傳遞給 Linux 系統一個文件名,它無法找到指定文件;而當將 bin 文件的絕對路徑傳遞 Linux 系統時,它就可以成功找到。
相對路徑
和絕對路徑不同,相對路徑不是從根目錄 / 開始寫起,而是從當前所在的工作目錄開始寫起。使用相對路徑表明某文件的存儲位置時,經常會用到前面講到的 2 個特殊目錄,即當前目錄(用 . 表示)和父目錄(用 .. 表示)。
舉個例子,當我們使用 root 身份登錄 Linux 系統時,當前工作目錄默認為 /root,如果此時需要將當前工作目錄調整到 root 的子目錄 Desktop 中,當然可以使用絕對路徑,示例代碼如下:
[root@localhost~]#pwd<--顯示當前所在的工作路徑/root[root@localhost~]#cd/root/Desktop[root@localhostDesktop]#pwd/root/Desktop
可以看到,通過使用絕對路徑,我們成功地改變了當前工作路徑。但除此之外,使用相對路徑的方式會更簡單。因為目前處于 /root 的位置,而 Desktop 就位于當前目錄下,所以:
[root@localhost~]#pwd<--顯示當前所在的工作路徑/root[root@localhost~]#cd./Desktop[root@localhostDesktop]#pwd/root/Desktop
此代碼中,./Desktop 表示的就是 Destop 文件相對于 /root 所在的路徑。
再舉一個例子,如果以 root 身份登錄 Linux 系統,并實現將當前工作目錄由 /root 轉換為 /usr 目錄,有以下 2 種方式:
#使用絕對路徑[root@localhost~]#pwd<--顯示當前所在的工作路徑/root[root@localhost~]#cd/usr[root@localhost~]#pwd/usr#使用相對路徑[root@localhost~]#pwd<--顯示當前所在的工作路徑/root[root@localhost~]#cd../usr<--相對root,usr位于其父目錄/,因此這里要用到..[root@localhost~]#pwd/usr
總之,絕對路徑是相對于根路徑 / 的,只要文件不移動位置,那么它的絕對路徑是恒定不變的;而相對路徑是相對于當前所在目錄而言的,隨著程序的執行,當前所在目錄可能會改變,因此文件的相對路徑不是固定不變的。
絕對路徑和相對路徑之間的差異
我們都知道Linux中目錄結構是一個樹,從根(/)開始,然后產生分支。
假設我們現在目錄abhishek中,并且希望訪問文件my_scripts.sh,如下圖所示兩種路徑的表示:
假設我們使用 ls 命令查看 my_script.sh 的文件信息,那么使用絕對路徑:
ls-l/home/abhishek/scripts/my_script.sh
然后,相對路徑:
ls-lscripts/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絕對路徑與相對路徑的概念是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注本站網站,小編將為大家輸出更多高質量的實用文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖)在生活中,很多人都不知道大江大河大結局是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的大江大河大結局相關的一些知識,我們一起來學習下吧!1、《大江大河》最后的結局中,宋運輝在心灰意冷之下主動申請調往東海,雷東寶成功收購市電線廠為宋運萍報仇,和韋春紅的感情也有了進一步發展,楊巡掛靠在雷東寶的企業下,收購了電器市場,他和尋建祥也在宋運輝的介紹下達成了合作。2、《大江大河》是由上海廣...
【資料圖】在生活中,很多人都不知道如何使用余額寶是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的如何使用余額寶相關的一些知識,我們一起來學習下吧!如何使用支付寶中的余額寶功能工具/原料智能手機一部支付寶APP支付寶/銀行卡余額若干方法/步驟11、注冊/登陸上支付寶,首先點擊“我的”,其次點擊“余額寶”。2、進入到余額寶頁面,如果余額寶未開通,需要同意相關協議,點擊開通余額寶。如果已開通,...
亞馬遜(Amazon,簡稱亞馬遜;納斯達克代碼:AMZN)是美國最大的在線電子商務公司,位于華盛頓州西雅圖市。亞馬遜成立于1995年。起初,它只經營在線圖書銷售,但現在它已經擴展到廣泛的其他產品。成為全球商品種類最多的網絡零售商,全球第二大互聯網企業。亞馬遜和其他供應商為客戶提供數百萬種獨特的新商品、翻新商品和二手商品,如書籍、電影、音樂和游戲、數字下載、電子產品和計算機、家庭園藝用品、玩具、嬰兒...