Unix-opas, luku 7 Tiedostot ja hakemistot:

Suunnistaminen hakemistopuussa - pwd ja cd

Käsitteet "kotihakemisto" ja "työhakemisto"

Jokaisella käyttäjällä on Unix-koneessa hakemisto, joka on hänen omistuksessaan. Tätä hakemistoa sanotaan käyttäjän kotihakemistoksi (home directory). Kotihakemisto on normaalisti vain omistajan käytössä.

Kotihakemiston nimi sisältää omistajan käyttäjätunnuksen, mutta muutoin nimi on erilainen eri järjestelmissä. Yleensä ei ole syytä viitata kotihakemistoonsa suoraan sen nimellä, vaan kannattaa käyttää sen symbolista nimeä ~ (tämän merkin virallinen nimi on tilde, arkikielessä puhutaan usein "matomerkistä"). Tosin kaikissa shelleissä se ei ole mahdollista. Toinen, yleispätevämpi ratkaisu on käyttää symbolista nimeä $HOME.

Käyttäjä voi myös viitata muiden käyttäjien kotihakemistoihin. Riippuu hakemistojen suojauksista, onko tästä mitään hyötyä, mutta joka tapauksessa käyttäjätunnuksen tunnus kotihakemistoon voivat kaikki käyttäjät viitata symbolisella nimellä ~tunnus eli tilde-merkillä, jota seuraa (ilman välilyöntiä) käyttäjätunnus.

Työhakemistoksi (working directory) eli nykyiseksi hakemistoksi (current directory) kutsutaan sitä hakemistoa, "jossa käyttäjä juuri sillä hetkellä on". Täsmällisemmin sanottuna se tarkoittaa sitä hakemistoa, jonka tiedostoihin tiedostonnimet oletusarvoisesti viittaavat. Pääteistunnon alkaessa työhakemistona on kotihakemisto, mutta työhakemistoa voi vaihtaa cd-komennolla.

Tiedostonnimet siis viittaavat oletusarvoisesti työhakemistoon. Esimerkiksi kun olet hakemistossa mail/ ja tuhoat (komennolla rm foo) siellä tiedoston nimeltä foo, niin tuhoaminen ei vaikuta mitenkään kotihakemistossasi ehkä olevaan tiedostoon nimeltä foo.

Työhakemistollakin on symbolinen nimi, samoin sitä lähinnä ylemmällä hakemistolla:

Missä hakemistossa nyt olen? pwd kertoo

Komento pwd (print working directory) näyttää, missä hakemistossa ollaan eli mikä on senhetkinen työhakemisto.

Seuraavassa on kaksi esimerkkiä pwd:n tulostuksesta. Kummassakin tapauksessa käyttäjä jkorpela on kotihakemistossaan mutta eri koneissa; kuten nähdään, kotihakemistojen nimet voivat siis eri koneissa olla aivan erilaiset:

/m/fs/lai/lai/lk/jkorpela
/mnt/mds/univ2/tkk/jkorpela

Siirtyminen toiseen hakemistoon: cd

Komennolla cd (change directory) siirrytään toiseen hakemistoon eli vaihdetaan työhakemistoa. Komennon muoto on

cd hakemistonnimi

Argumentin oletusarvona on kotihakemisto.

Esimerkkejä:

Siirtyminen hakemistoon cd-komennolla ei sinänsä edellytä hakemiston suojauksilta muuta kuin että siihen on "suoritusoikeus" eli x-oikeus. Toisaalta cd-komento ei mitenkään lisää käyttäjän oikeuksia kyseiseen hakemistoon tai sen tiedostoihin.