Salta al contenuto principale

pwd: scopri in quale directory ti trovi

Inviato da tuxsa il

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/enzo

L'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/Articoli

Dopo 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/enzo

Esempio 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/html

Con -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/pwd

Normalmente 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/Documenti

Il risultato è lo stesso di pwd, ma senza eseguire un comando: comodo negli script.

Riepilogo

ComandoCosa fa
pwdMostra la directory corrente
pwd -LPercorso logico (con link simbolici)
pwd -PPercorso fisico (link risolti)
echo $PWDStessa informazione tramite variabile

Nel prossimo articolo: cd, il comando per spostarsi tra le directory.