--- layout: page category-title: fs category-page: FileSystem tags: change directory author: Mirko Ponzio title: cd ---
Nei sistemi operativi Unix e Unix-like, e più in generale nei sistemi POSIX[1], cd (abbreviazione dalla lingua inglese di change directory,
cambia directory) è un comando interno delle shell testuali che cambia la directory corrente della shell da cui viene eseguito.
Il comando è necessariamente un comando interno della shell, e non può essere un programma esterno ad essa,
in quanto un processo può modificare solo la propria directory corrente e non quella di altri processi;
da ciò segue che la shell deve implementare autonomamente questa funzione.
La nuova impostazione della directory corrente viene comunque ereditata dai programmi avviati in seguito dalla stessa shell.
Dopo un cambio di directory corrente, la variabile d'ambiente PWD viene automaticamente aggiornata con il pathname della nuova directory corrente.
La sintassi generale di cd è la seguente: cd [opzioni] [--] [dir] Il parametro facoltativo dir indica la nuova directory corrente. Se non è specificato, viene usato al suo posto il valore della variabile d'ambiente HOME, che normalmente indica la home directory dell'utente. Se invece è un trattino ("-"), allora viene usata la directory corrente precedente. Se il parametro dir è un pathname relativo che non ha come primo elemento "." o "..", allora esso viene unito a ciascuna delle directory elencate nella variabile d'ambiente CDPATH: se il risultato corrisponde ad una directory esistente, allora essa diviene la nuova directory corrente. Altrimenti dir viene considerato relativo alla directory corrente. Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.