Salta al contenuto principale

cd : cioè "cambia directory".

Inviato da tuxsa il

cd è il comando con cui ci si sposta tra le cartelle nel terminale Linux. Se pwd ti dice dove sei, cd ti porta dove vuoi andare: è probabilmente il comando che userai più spesso in assoluto.

Cos'è

cd è l'acronimo di change directory, cioè "cambia directory". A differenza di molti altri comandi non è un programma separato, ma un comando interno (builtin) della shell. Il motivo è tecnico: cambiare la directory corrente è una modifica allo stato della shell stessa, e un programma esterno, essendo un processo distinto, potrebbe cambiare solo la propria directory e non quella della shell che l'ha lanciato.

Cosa fa

Modifica la directory di lavoro della shell: da quel momento i comandi successivi partono dalla nuova posizione. In caso di successo non stampa nulla; se qualcosa va storto, mostra un messaggio d'errore.

Come si usa

Sintassi base:

$ cd [directory]

Esempio 1: percorso assoluto e relativo

Un percorso assoluto parte dalla radice (/), uno relativo parte dalla directory in cui ti trovi.

$ pwd
/home/enzo
$ cd /var/log
$ pwd
/var/log
$ cd /home/enzo
$ cd Documenti/Articoli
$ pwd
/home/enzo/Documenti/Articoli

Esempio 2: salire di livello con ..

Il punto doppio (..) indica la directory superiore, il punto singolo (.) quella corrente.

$ pwd
/home/enzo/Documenti/Articoli
$ cd ..
$ pwd
/home/enzo/Documenti
$ cd ../..
$ pwd
/home

Esempio 3: tornare alla home

Tre modi equivalenti per tornare alla propria cartella personale:

$ cd
$ cd ~
$ cd $HOME

Con ~nomeutente puoi anche raggiungere la home di un altro utente, se hai i permessi per entrarci:

$ cd ~mario

Esempio 4: tornare alla directory precedente

Con cd - torni all'ultima directory in cui eri, utilissimo quando fai avanti e indietro tra due cartelle lontane:

$ cd /var/log
$ cd /etc/nginx
$ cd -
/var/log
$ cd -
/etc/nginx

Il comando stampa il percorso di destinazione, che viene memorizzato nella variabile OLDPWD.

Esempio 5: nomi con spazi

Se il nome della cartella contiene spazi, va racchiuso tra virgolette oppure gli spazi vanno preceduti da una barra rovesciata:

$ cd "Documenti di lavoro"
$ cd Documenti\ di\ lavoro

Un consiglio pratico: premi il tasto Tab per far completare il nome alla shell, che inserisce da sola gli spazi e i caratteri speciali nel modo corretto.

Esempio 6: uso negli script

Negli script conviene verificare che il cd sia riuscito, altrimenti i comandi successivi verrebbero eseguiti nella cartella sbagliata:

#!/bin/bash
cd /var/www/html || { echo "Cartella non trovata"; exit 1; }
echo "Sono in: $(pwd)"
ls

Opzioni utili

  • cd -L (default): segue i link simbolici, mantenendo nel percorso il nome del link.
  • cd -P: risolve i link simbolici e va nella directory fisica effettiva.
  • cd -: torna alla directory precedente (non è un'opzione vera e propria, ma una scorciatoia molto usata).

La differenza tra -L e -P si vede combinando cd con pwd:

$ ln -s /var/www/html ~/sito
$ cd -P ~/sito
$ pwd
/var/www/html

Attenzione a

  • Maiuscole e minuscole: su Linux Documenti e documenti sono due cartelle diverse.
  • Permessi: per entrare in una directory serve il permesso di esecuzione (x) su di essa. Se manca, ottieni Permission denied.
  • Directory inesistente: il messaggio è No such file or directory. Controlla con pwd e con il completamento automatico.
  • Negli script: il cd eseguito dentro uno script cambia la directory solo per lo script, non per il terminale da cui l'hai lanciato.

Riepilogo

ComandoCosa fa
cd /percorsoVa in un percorso assoluto
cd cartellaVa in una sottocartella (percorso relativo)
cd ..Sale di un livello
cd / cd ~Torna alla home
cd -Torna alla directory precedente
cd -P cartellaEntra risolvendo i link simbolici

Nel prossimo articolo: ls, il comando per elencare il contenuto di una directory.