/Users/lukas jest ścieżką „absolutną”. Prowadzenie / reprezentuje katalog główny twojego systemu plików.
lukas jest ścieżką „względną”. Ponieważ nie jest zakotwiczony w katalogu głównym, oznacza to „szukaj tego w obecny katalog. ”O ile katalog bieżący nie jest /Users (lub jakiś inny katalog z lukas w nim) to się nie powiedzie.
Przyjrzyjmy się przykładom, zakładając, że jesteś /Users/lukas:
$ cd Documents/
/Users/lukas/Documents
Podana ścieżka względna = & gt; przejdź do katalogu „Dokumenty”, który jest w środku /Users/lukas.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Podana ścieżka bezwzględna = & gt; przejdź do katalogu /Documents.
$ pwd
/
To pokazuje, że zmieniłeś teraz katalog roboczy na katalog główny, / (choć cd polecenie to nie zostało pokazane).
$ cd Users
/Users
Podana ścieżka względna = & gt; przejdź do katalogu „Użytkownicy”, który jest w środku /.
$ cd /Users
/Users
Podana ścieżka bezwzględna = & gt; przejdź do katalogu /Users.
Kluczem jest za każdym razem to prowadzenie /. Dzięki niemu ścieżka jest absolutna. Bez tego ścieżka jest względna. Ta reguła jest jednoznaczna, ponieważ zaczynają się wszystkie ścieżki bezwzględne / (ponieważ katalog główny jest zawsze nazywany / ).
Oto kilka pseudokodów luźno opisujących ten algorytm:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
Argument, który przekazujesz cd przechodzi przez ten algorytm; katalog, w którym kończy się zmiana, jest ścieżką zwracaną przez algorytm.
Dalsza lektura: