GNU/Linux >> Znalost Linux >  >> Linux

Absolutní vs relativní cesta v Linuxu:Jaký je rozdíl?

Cesta je jedním z nejdůležitějších pojmů v Linuxu a to je něco, co musí znát každý uživatel Linuxu.

Cesta je způsob, jakým odkazujete na soubory a adresáře. Udává umístění souboru nebo adresáře v adresářové struktuře Linuxu. Skládá se ze syntaxe názvu a lomítka.

/home/abhishek/scripts

Jako uživatel budete muset použít cestu, když chcete získat přístup k určitému souboru nebo adresáři nebo když musíte zadat umístění souboru nebo adresáře příkazu nebo skriptu.

cat /home/abhishek/scripts/my_script.sh

Pamatujte, že pokud cesta začíná lomítkem "/", první lomítko označuje kořen. Zbytek lomítek v cestě jsou pouze oddělovače. Začátečníci se často zaměňují mezi kořenovým lomítkem a oddělovacími lomítky.

Ve výše uvedeném diagramu máte první cestu, která začíná kořenovým lomítkem. Existuje další cesta, která nezačíná / (tj. root).

Obojí je správné. První je absolutní cesta a druhá je relativní cesta. Pojďme se na ně podrobně podívat.

Absolutní a relativní cesta v Linuxu

Absolutní cesta vždy začíná v kořenovém adresáři (/). Například /home/abhishek/scripts/my_scripts.sh.

Relativní cesta začíná od aktuálního adresáře. Pokud jste například v adresáři /home a chcete získat přístup k my_scripts.sh soubor, můžete použít abhishek/scripts/my_scripts.sh .

Pochopení rozdílu mezi absolutními a relativními cestami

Víte, že adresářová struktura v Linuxu připomíná kořen stromu. Vše začíná u kořene a odtud se větví.

Nyní si představte, že jste v adresáři abhishek a chcete získat přístup k my_scripts.sh soubor.

Absolutní cesta je znázorněna zelenou tečkovanou čarou a relativní cesta je znázorněna žlutými tečkovanými čarami.

Předpokládejme, že chcete vidět vlastnosti souboru my_script.sh pomocí příkazu ls.

Můžete použít absolutní cestu, která začíná kořenovým adresářem (/):

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

Nebo můžete použít relativní cestu (která začíná v aktuálním adresáři, nikoli /):

ls -l scripts/my_script.sh

Oba příkazy poskytnou stejný výsledek (kromě cesty k souboru).

V Linuxu se v názvech souborů rozlišují velká a malá písmena a mohou obsahovat velká, malá písmena, čísla, tečky, pomlčky, podtržítka a většina symbolů kromě lomítka (/). Lomítko (/) je vyhrazeno pro root a pro oddělení adresářů v cestě.

Použití relativní cesty s . a .. adresáře

Dovolte mi ukázat další příklady pro vysvětlení rozdílu mezi absolutní cestou a relativní cestou. Ale předtím byste měli vědět o dvou speciálních relativních cestách:

  • . (jedna tečka) označuje aktuální adresář v cestě.
  • .. (dvě tečky) označuje nadřazený adresář, tj. o úroveň výše.

Věci budou za chvíli jasné. Podívejte se na scénář. V tomto případě chcete přejít do adresáře prakash z adresáře abhishek .

K přepínání adresářů můžete použít příkaz cd. Absolutní cesta je zcela evidentní zde:

cd /home/prakash

Chcete-li použít relativní cestu, budete muset použít speciální relativní cestu:

cd ../prakash

Proč používat ..? Protože relativní cesta vyžaduje směr z aktuálního adresáře a příkazu cd musíte říct, aby šel o úroveň výš, než půjde dolů. .. vás přenese do /home a odtud přejděte do prakash adresář.

Doufám, že teď jsou věci mnohem jasnější.

Absolutní cesta vždy začíná kořenem (/) a zůstane stejná bez ohledu na vaši aktuální polohu. Relativní cesta závisí na vaší aktuální poloze.

Kterou byste měli použít? Relativní cesta nebo absolutní cesta?

Abych byl upřímný, na tuto otázku neexistuje jednoznačná odpověď. Opravdu záleží na situaci.

Pokud jste hluboko v hierarchii adresářů a musíte se posunout o úroveň nahoru nebo dolů, bude použití relativní cesty jednodušší.

Předpokládejme, že jste v adresáři /home/username/programming/project/interface/src/header a máte přístup k něčemu v adresáři /home/username/programming/project/interface/bin. Použití relativní cesty vám ušetří psaní všech těch zdlouhavých názvů adresářů a můžete jednoduše použít ../../bin zde.

Ale pokud potřebujete přistupovat k něčemu v adresáři /usr/bin z adresáře /home/username/programming/project/interface/src/header, pomocí něčeho jako ../../../../../. ./usr/bin nebude moudrá věc. Použití absolutní cesty je v tomto případě rozumné.

Dalším případem je použití cest ve skriptech nebo programech. Když jste si jistí umístěním, použijte absolutní cestu. Pokud má váš projekt několik složek a potřebujete přepínat mezi adresáři, můžete zde použít relativní cestu, protože nevíte, kam bude koncový uživatel kopírovat všechny soubory projektu, v domovském adresáři nebo v některém adresáři pro vývojáře.

Jinými slovy, měli byste znát obě metody a použít tu, která bude na základě vašeho scénáře jednodušší.

Doufám, že nyní lépe rozumíte cestě a navigaci v Linuxu. Máte-li dotazy nebo návrhy, zanechte prosím komentář.


Linux
  1. Jaký je rozdíl mezi „vyhledat“ a „najít“ v Linuxu?

  2. Jaká by měla být ideální oprávnění k domovskému adresáři v linuxu

  3. Co je ekvivalentem Active Directory v Linuxu

  1. Linux vs. Unix:Jaký je rozdíl?

  2. Jaký je rozdíl mezi linuxovým kontejnerem a obrázkem?

  3. Jaký je rozdíl mezi Unixem, Linuxem, BSD a GNU?

  1. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  2. Rozdíl mezi absolutní a relativní cestou v Linuxu

  3. Seznam souborů rekurzivně v Linux CLI s cestou relativní k aktuálnímu adresáři