/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: