Linux / Comandi / cd / Comando per spostarsi in un'altra directory

In Linux, il comando cd cambia la directory di lavoro della shell corrente. Ad esempio, esegui cd /etc e poi pwd per verificare la posizione corrente.

Controlla la posizione corrente e spostati

cd è l’abbreviazione dell’inglese change directory (cambia directory) ed è un comando incorporato in shell come Bash. È necessario specificare la directory in cui si vuole spostarsi come argomento. Il comando seguente si sposta in /etc e mostra quella posizione.

cd /etc
pwd

Se lo spostamento ha successo, il comando cd di per sé generalmente non produce alcun output. Assicurati che pwd mostri /etc. Lo spostamento non comporta lo spostamento di file o la modifica dei contenuti, ma cambia piuttosto la posizione di riferimento della shell corrente. La directory di lavoro di altri terminali non cambia.

Percorsi assoluti e percorsi relativi

I percorsi assoluti partono dalla directory radice /. Ad esempio, il seguente comando specifica /var/log indipendentemente dalla tua posizione attuale. La directory deve esistere ed essere accessibile.

cd /var/log
pwd

I percorsi relativi si basano sulla posizione corrente. Ad esempio, per spostarsi in /var e poi in log al suo interno, eseguire come segue.

cd /var
cd ./log
pwd

Se eseguito correttamente, verrà visualizzato /var/log. . si riferisce alla directory corrente, quindi ./log è log relativo alla posizione corrente. Se CDPATH è impostato in Bash, cd log può utilizzare percorsi di ricerca alternativi, ma cd ./log si riferisce esplicitamente alla directory corrente. Se lo spostamento fallisce, risolvere l'errore prima di eseguire il comando successivo.

Spostarsi nella directory genitore e nella posizione precedente

.. si riferisce alla directory genitore. Se la posizione corrente è /var/log, il comando seguente si sposta in /var.

cd ..
pwd

Per tornare alla directory visitata in precedenza, usa il comando seguente.

cd -

cd - in Bash si sposta nella directory di lavoro precedente e ne stampa il percorso. Potrebbe fallire se la posizione precedente non è stata impostata o è inaccessibile. Nell'esempio sopra, se ti sei spostato da /var/log a /var immediatamente prima, tornerà a /var/log.

Spostarsi nella directory home

Se esegui cd senza un percorso, Bash si sposta nella directory home impostata nella variabile HOME. ~ viene solitamente espanso anche alla home directory dell'utente corrente.

cd
pwd

La posizione della directory home varia a seconda dell'account e delle impostazioni, quindi non dare per scontato che sia sempre /home/user. cd ~/Documents si sposta sotto la home in Documents e, se quella directory non esiste, l'operazione fallirà. cd ~user in Bash è un modo per sostituire user con il nome effettivo dell'account per indicare il percorso home di quell'account. Non consente di accedere come un altro utente né di concedere permessi, e devi avere i diritti di accesso alla destinazione.

Percorsi con spazi e collegamenti simbolici

Se un nome di directory contiene spazi, racchiudi il percorso tra virgolette. L'esempio seguente lo utilizza quando my folder si trova nella directory corrente.

cd "my folder"

Quando si utilizza il percorso home, puoi posizionare ~ fuori dalle virgolette e racchiudere il resto. Il seguente è un esempio quando my folder si trova sotto la directory home.

cd ~/"my folder"

Se ti sei spostato tramite un collegamento simbolico, il percorso visualizzato e il percorso reale della directory possono differire. pwd -P di Bash mostra il percorso fisico. cd -P si sposta in base al percorso fisico interpretato dal collegamento, e il risultato elaborato da .. può differire dal comportamento predefinito. Per ulteriori dettagli, consulta Manuale Bash: cd e pwd.

Verifica quando lo spostamento non è possibile

  • Percorso non trovato: Verifica l'ortografia e la sensibilità alle maiuscole e minuscole, così come la tua posizione attuale, e usa ls per vedere se il nome esiste. Il file non è una directory, quindi non puoi accedervi con cd.
  • Permesso negato: Assicurati di avere il permesso di ricerca per accedere alla destinazione e alle sue directory genitore. Invece di cambiare arbitrariamente i permessi, richiedi l'accesso necessario all'amministratore.
  • Posizione imprevista: Confronta pwd e pwd -P, e verifica i collegamenti simbolici o le impostazioni CDPATH.

Puoi visualizzare l'aiuto dei comandi integrati in Bash con help cd. Negli script, è necessario verificare lo stato di uscita per evitare che lo script esegua operazioni successive nella directory sbagliata se cd fallisce.