Gym
lesson

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