Cd (Unix)
# Cd (Unix)

cd (abbreviazione dalla lingua inglese di change directory, cambia directory), nei sistemi operativi Unix e Unix-like, e più in generale nei sistemi POSIX, è un comando interno delle shell testuali che cambia la directory corrente della shell da cui viene eseguito.

## Descrizione generale

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.

## Sintassi

La sintassi generale di cd è la seguente:

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.

## Opzioni

Tra le opzioni vi sono:

### -P

    Risolve gli eventuali collegamenti simbolici a directory, in modo che la nuova directory corrente sia specificata come pathname assoluto non contenente alcun collegamento simbolico nei suoi componenti.

### -L

    Non risolve eventuali collegamenti simbolici a directory, che quindi possono fare parte dei componenti del pathname della nuova directory corrente.

## Esempi

Imposta /tmp come nuova directory corrente:

Sale di un livello nella gerarchia delle directory:

Ritorna alla directory corrente precedente:

Va nella directory specificata dalla variabile d'ambiente HOME, che normalmente è la home directory dell'utente:

Ricerca la sottodirectory fatture/2008 relativamente alle directory elencate nella variabile d'ambiente CDPATH e alla directory corrente, e usa come nuova directory corrente la prima tra esse trovata:

Ricerca la subdirectory fatture/2008 relativamente alla directory corrente e la usa come nuova directory corrente, non considerando i valori elencati nella variabile d'ambiente CDPATH:

