pwd è il comando che ti dice in quale directory ti trovi. Quando lavori nel terminale Linux, ogni comando viene eseguito in una posizione precisa del file system: se ti perdi tra le cartelle, pwd ti rimette subito in carreggiata.
Cos'è
pwd è l'acronimo di print working directory, cioè "stampa la directory di lavoro". È uno dei comandi più semplici e antichi dei sistemi Unix-like ed è disponibile in qualsiasi distribuzione GNU/Linux.
Cosa fa
Mostra il percorso assoluto della directory in cui ti trovi in quel momento, a partire dalla radice del file system (/). Non modifica nulla e non crea file: legge e stampa soltanto.
Come si usa
La sintassi base non prevede argomenti:
$ pwd
/home/enzoL'output indica che ci troviamo nella home dell'utente enzo.
Esempio 1: spostarsi e verificare
$ pwd
/home/enzo
$ cd Documenti/Articoli
$ pwd
/home/enzo/Documenti/ArticoliDopo ogni cd puoi usare pwd per controllare di essere arrivato dove volevi.
Esempio 2: tornare alla home
$ cd /var/log
$ pwd
/var/log
$ cd ~
$ pwd
/home/enzoEsempio 3: uso negli script
Negli script di shell pwd serve a sapere da dove viene lanciato lo script e a costruire percorsi:
#!/bin/bash
DIR_CORRENTE=$(pwd)
echo "Sto lavorando in: $DIR_CORRENTE"
echo "Creo il backup in: $DIR_CORRENTE/backup"
mkdir -p "$DIR_CORRENTE/backup"La sintassi $(pwd) salva l'output del comando in una variabile.
Le opzioni -L e -P
Le due opzioni fanno differenza quando di mezzo ci sono i link simbolici:
pwd -L(default nella maggior parte delle shell): mostra il percorso logico, cioè quello che hai seguito, link simbolici compresi.pwd -P: mostra il percorso fisico, con tutti i link simbolici risolti.
Un esempio: creiamo un link simbolico a /var/www/html ed entriamoci.
$ ln -s /var/www/html ~/sito
$ cd ~/sito
$ pwd -L
/home/enzo/sito
$ pwd -P
/var/www/htmlCon -L vedi il percorso che hai digitato; con -P vedi dove si trovano davvero i file sul disco.
Curiosità: comando interno ed eseguibile
pwd esiste in due versioni: come comando interno (builtin) di shell come Bash e come eseguibile separato in /usr/bin/pwd. Puoi verificarlo con:
$ type -a pwd
pwd is a shell builtin
pwd is /usr/bin/pwdNormalmente viene usata la versione builtin, più veloce.
La variabile $PWD
La shell tiene il percorso corrente anche nella variabile d'ambiente PWD:
$ echo $PWD
/home/enzo/DocumentiIl risultato è lo stesso di pwd, ma senza eseguire un comando: comodo negli script.
Riepilogo
| Comando | Cosa fa |
|---|---|
pwd | Mostra la directory corrente |
pwd -L | Percorso logico (con link simbolici) |
pwd -P | Percorso fisico (link risolti) |
echo $PWD | Stessa informazione tramite variabile |
Nel prossimo articolo: cd, il comando per spostarsi tra le directory.