Putanje: apsolutne i relativne
Cilj lekcije
Razumeti razliku između apsolutnih i relativnih putanja i znati kada koristiti koju vrstu.
Šta je putanja?
Putanja (path) je adresa fajla ili direktorijuma u fajl sistemu. Kao ulična adresa — govori sistemu gde da traži nešto.
Apsolutna putanja
Uvek počinje sa / (koren sistema). Bez obzira gde se nalazite, apsolutna putanja uvek vodi na isto mesto.
/home/student/dokumenti/beleske.txt
/etc/ssh/sshd_config
/var/log/syslog
/usr/bin/python3
Primeri upotrebe
cd /home/student/dokumenti # odlazak na apsolutnu putanju
cat /etc/hostname # čitanje fajla apsolutnom putanjom
ls /var/log # listanje sa apsolutnom putanjom
Apsolutna putanja radi isto bez obzira odakle je pozivate.
Relativna putanja
Ne počinje sa /. Polazi od vašeg trenutnog direktorijuma. Ista relativna putanja znači različito zavisno od toga gde ste.
Ako ste u /home/student/:
cd dokumenti # ide u /home/student/dokumenti
cat dokumenti/beleske.txt
ls projekti/web
Ako ste u /home/:
cd dokumenti # ide u /home/dokumenti ← RAZLIČITO MESTO!
Gradivni blokovi relativnih putanja
cd projekti # ide u "projekti" unutar trenutnog
cd projekti/web/css # ide dublje
cd .. # ide jedan nivo gore
cd ../.. # ide dva nivoa gore
cd ../drugi-folder # ide gore pa u drugi direktorijum
Apsolutna vs. relativna — primer
Pretpostavimo strukturu:
/home/student/
├── dokumenti/
│ └── beleske.txt
└── projekti/
└── web/
└── index.html
Ako ste u /home/student/projekti/web/, oba načina vode do istog fajla:
# Apsolutna putanja:
cat /home/student/dokumenti/beleske.txt
# Relativna putanja:
cat ../../dokumenti/beleske.txt
Konverzija između putanja
Ako niste sigurni koja je apsolutna putanja, pwd vam pomaže:
# Ste u /home/student, pa:
cd dokumenti
pwd
# /home/student/dokumenti ← ovo je apsolutna putanja
# Ili koristite `realpath` za konverziju
realpath beleske.txt
# /home/student/dokumenti/beleske.txt
Tab autocomplete — lakse kucanje putanja
Tab autocomplete je detaljno prikazan u lekciji 2.4 (Prakticne precice). Ovde samo podsecanje: kucas pocetak putanje + Tab i shell zavrsi za tebe.
cd /home/stu[TAB]
# → dopunjava u: cd /home/student/
Fajlovi sa razmakom u imenu
Sta ako ime fajla ima razmak? Na primer Moja Dokumenta. Mora se citirati ili eskejpovati (escape), inace shell tretira kao dva odvojena argumenta:
cd 'Moja Dokumenta' # jednostruki navodnici
cd Moja\ Dokumenta # eskejp razmaka obrnutom kosom crtom
Velika i mala slova
Linux razlikuje velika i mala slova: cd Dokumenti i cd dokumenti su DVA razlicita direktorijuma.
Rezime
Apsolutna: počinje sa / → /home/student/dokumenti
Relativna: počinje bez / → dokumenti ili ../projekti
Tab [TAB] → autocomplete putanje
realpath → konvertuje relativnu u apsolutnu
pwd → pokazuje vašu trenutnu apsolutnu putanju