[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 26.   Navigazione tra le directory

I dati contenuti in un file system sono organizzati in modo gerarchico attraverso directory e sottodirectory. Prima di iniziare questa esercitazione è conveniente rivedere la sezione 19.7.3.

L'utente a cui ci si riferisce negli esempi è tizio.

26.1   Directory corrente

Mentre si utilizza il sistema, i comandi che si eseguono risentono generalmente della posizione corrente in cui ci si trova, ovvero della directory attuale, o attiva. Tecnicamente non c'è bisogno di definire una directory corrente: tutte le posizioni nell'albero del file system potrebbero essere indicate in maniera precisa. In pratica, la presenza di questa directory corrente semplifica molte cose.

cd /usr/bin[Invio]

Eseguendo il comando precedente, la directory attuale dovrebbe divenire /usr/bin/. Per controllare che ciò sia avvenuto si utilizza il comando seguente:

pwd[Invio]

/usr/bin

26.2   Spostamenti assoluti e relativi

Il comando cd può essere utilizzato per cambiare la directory corrente, sia attraverso l'indicazione di un percorso assoluto, sia attraverso un percorso relativo. Il percorso assoluto parte dalla directory radice, mentre quello relativo parte dalla posizione corrente.

cd /usr/local[Invio]

Il comando soprastante cambia la directory corrente in modo che diventi esattamente /usr/local/. Il percorso indicato è assoluto perché inizia con una barra obliqua che rappresenta la directory radice.

pwd[Invio]

/usr/local

Quando si utilizza l'indicazione di un percorso che non inizia con una barra obliqua, si fa riferimento a qualcosa che inizia dalla posizione corrente.

cd bin[Invio]

Con questo comando si cambia la directory corrente, passando in bin/ che discende da quella attuale.

pwd[Invio]

/usr/local/bin

26.3   Spostamenti a ritroso

Ogni directory contiene due riferimenti convenzionali a due sottodirectory speciali. Si tratta del riferimento alla directory stessa che lo contiene, rappresentato da un punto singolo (.), assieme al riferimento alla directory genitrice, rappresentato da due punti in sequenza (..). Questi simboli (il punto singolo e quello doppio) sono nomi di directory a tutti gli effetti.

cd ..[Invio]

Cambia la directory corrente, facendola corrispondere alla genitrice di quella in cui ci si trovava prima; in altri termini si potrebbe definire questa directory come quella che precede la posizione di partenza. Si tratta di un percorso relativo che utilizza, come punto di inizio, la directory corrente del momento in cui si esegue il comando.

pwd[Invio]

/usr/local

Gli spostamenti relativi che fanno uso di un movimento all'indietro possono essere più elaborati.

cd ../bin[Invio]

In questo caso si intende indietreggiare di una posizione e quindi entrare nella directory bin/.

pwd[Invio]

/usr/bin

Lo spostamento a ritroso può essere anche cumulato a più livelli.

cd ../../var/tmp[Invio]

In questo caso si indietreggia due volte prima di riprendere un movimento in avanti.

pwd[Invio]

/var/tmp

Gli spostamenti all'indietro si possono usare anche in modo più strano e apparentemente inutile.

cd /usr/bin/../local/bin/..[Invio]

Indubbiamente si tratta di un'indicazione poco sensata, ma serve a comprendere le possibilità date dall'uso del riferimento alla directory precedente.

pwd[Invio]

/usr/local

26.4   Riferimento preciso alla directory corrente

La directory corrente può essere rappresentata da un punto singolo all'inizio di un percorso.(1) In pratica, tutti i percorsi relativi potrebbero iniziare con il prefisso ./ (punto, barra obliqua). Per quanto riguarda lo spostamento all'interno delle directory, ciò serve a poco, ma ritorna utile in altre situazioni.

cd ./bin[Invio]

A partire dalla directory corrente si sposta nella directory bin/.

pwd[Invio]

/usr/local/bin

26.5   Directory corrente e «.»

La directory corrente non corrisponde esattamente al concetto legato al riferimento .: il «file» . è un cortocircuito che ha ogni directory. Per esempio, il percorso uno/due/./tre è perfettamente equivalente a uno/due/tre. In pratica, quel punto che appare nel primo caso, rappresenta semplicemente uno spostamento nullo nella stessa directory uno/due. Lo si può verificare facilmente:

cd /usr/./local/./lib[Invio]

pwd[Invio]

/usr/local/lib

Quando si indica un percorso relativo, è come inserire implicitamente all'inizio la directory corrente; pertanto, scrivere ./uno/due, significa indicare un concetto equivalente a directory_corrente/./uno/due. In questo senso, solo quando il punto si trova all'inizio di un percorso (che quindi risulta essere relativo), il punto rappresenta la directory corrente.

26.6   Directory personale, o directory home

Ogni utente ha una directory personale, conosciuta come directory home, destinata a contenere tutto ciò che riguarda l'utente a cui appartiene. Usando il comando cd senza argomenti, si raggiunge la propria directory personale, senza bisogno di indicarla in modo esplicito.

cd[Invio]

pwd[Invio]

/home/tizio

Alcune shell sostituiscono il carattere tilde (~), all'inizio di un percorso, con la directory personale dell'utente che lo utilizza.

cd ~[Invio]

pwd[Invio]

/home/tizio

Nello stesso modo, un nominativo-utente preceduto da un carattere tilde, viene sostituito dalla directory personale dell'utente stesso.(2)

cd ~caio[Invio]

pwd[Invio]

/home/caio

Prima di proseguire si ritorna nella propria directory personale.

cd[Invio]

26.7   Conclusione

La directory corrente è un punto di riferimento importante per i programmi e il cambiamento di questa posizione avviene attraverso il comando cd. Per conoscere quale sia la directory corrente si utilizza pwd. Si può fare riferimento alla directory genitrice di quella attuale con una sequenza di due punti (..), mentre quella attuale (nell'ambito del contesto in cui ci si trova) si può individuare con un punto singolo (.).

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) In tal caso si tratta necessariamente di un percorso relativo

2) Negli esempi che si vedono si presume di poter entrare nella directory personale di un altro utente. Tuttavia, tale possibilità dipende dai permessi che questo gli attribuisce.


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome navigazione_tra_le_directory.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!