Un nome di file è una stringa che può contenere ogni carattere
esclusi `/' e `
0'. Tradizionalmente il file system è
organizzato ad albero: c'è una directory principale (indicata con
``/'') ; ogni directory può contenere file o altre directory, in
maniera ricorsiva. Ogni file quindi è contenuto in una sola
directory, detta directory padre del file. In figura 3.1
c'è un esempio di struttura di directory presa da una famosa
distribuzione di Linux.
In Unix una directory è un file speciale, che contiene una lista dei
file contenuti nella directory
. La directory è leggibile da tutti quelli che
hanno il permesso in lettura sulla directory, ma è scrivibile solo
dal kernel tramite le apposite primitive, in modo da garantire la
consistenza del file system.
Il full pathname di un file è la sequenza delle directory, a partire da quella principale, per arrivare al file. Quindi un full pathname comincia sempre per `/'.
La current working directory (cwd) è la directory corrente di un processo. Dato che la shell è un processo, essa possiede una cwd che è possibile cambiare con il comando di shell cd. Quando un utente entra nel sistema, la procedura di login lancia una shell la cui cwd è la home directory dell'utente. Per ottenere il pathname della cwd esiste il comando pwd.
Il relative pathname di un file è la sequenza delle directory, a partire da quella corrente, per arrivare al file. In un pathname (full o relative), il simbolo . indica la directory corrente e il simbolo .. la directory padre.
Esempio 1.Se la cwd è /home/lipari/bin, il pathname ../rtlib/src/task.c indica il file task.c nella directory /home/lipari/rtlib/src/, mentre il pathname ./killns.pl indica il
file killns.pl nella directory /home/lipari/bin.