Ricerca nel sito web

15 Esempi di comandi 'pwd' (Print Working Directory) in Linux


Per chi lavora con la riga di comando di Linux, è molto utile il comando "pwd", che dice dove ti trovi - in quale directory, a partire dalla radice (/). Soprattutto per i principianti di Linux, che potrebbero perdersi tra le directory dell'interfaccia a riga di comando durante la navigazione, il comando "pwd" viene in soccorso.

Cos'è il pwd?

"pwd" sta per "Directory di lavoro stampa". Come indica il nome, il comando "pwd" stampa la directory di lavoro corrente o semplicemente la directory in cui si trova l'utente, al momento. Stampa il nome della directory corrente con il percorso completo a partire dalla radice (/). Questo comando è integrato nel comando shell ed è disponibile sulla maggior parte delle shell: bash, Bourne shell, ksh,zsh, ecc.

Sintassi di base di pwd:
pwd [OPTION]
Opzioni utilizzate con pwd
 Options

 Descrizione

 -L (logical)

 Utilizza PWD dall'ambiente, anche se contiene collegamenti simbolici

 -P (physical)

 Evita tutti i collegamenti simbolici

 –help

 Visualizza questa guida ed esci

 –version

 Informazioni sulla versione in uscita ed uscita

Se vengono utilizzate entrambe le opzioni "-L" e "-P", l'opzione "L" ha la priorità. Se non viene specificata alcuna opzione al prompt, pwd eviterà tutti i collegamenti simbolici, ovvero prenderà in considerazione l'opzione "-P".

Stato di uscita del comando pwd:

0

Successo

Non-zero

Errore

Questo articolo mira a fornirti una visione approfondita del comando Linux "pwd" con esempi pratici.

1. Stampa la tua directory di lavoro corrente.

avi@tecmint:~$ /bin/pwd

/home/avi

2. Crea un collegamento simbolico a una cartella (ad esempio /var/www/html nella tua directory home come htm). Passare alla directory appena creata e stampare la directory di lavoro con collegamenti simbolici e senza collegamenti simbolici.

Crea un collegamento simbolico alla cartella /var/www/html come htm nella tua directory home e spostati lì.

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

3. Stampa la directory di lavoro dall'ambiente anche se contiene collegamenti simbolici.

avi@tecmint:~$ /bin/pwd -L

/home/avi/htm

4. Stampa la directory di lavoro fisica attuale risolvendo tutti i collegamenti simbolici.

avi@tecmint:~$ /bin/pwd -P

/var/www/html

5. Controlla se l'output del comando "pwd " e "pwd -P " sono uguali o meno, ovvero se non viene fornita alcuna opzione in runtime "pwd " prende in considerazione o meno l'opzione -P, automaticamente.

avi@tecmint:~$ /bin/pwd

/var/www/html

Risultato: è chiaro dall'output precedente degli esempi 4 e 5 (entrambi i risultati sono uguali), quindi, quando non viene specificata alcuna opzione con il comando "pwd ", tiene automaticamente conto dell'opzione "-P ".

6. Stampa la versione del tuo comando "pwd".

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

Nota: un comando 'pwd' viene spesso utilizzato senza opzioni e mai utilizzato con argomenti.

Importante: potresti aver notato che stiamo eseguendo il comando precedente come “/bin/pwd” e non “pwd”.

Allora qual è la differenza? Bene, "pwd" da solo significa pwd integrato nella shell. La tua shell potrebbe avere una versione diversa di pwd. Fare riferimento al manuale. Quando utilizziamo /bin/pwd, chiamiamo la versione binaria di quel comando. Sia la shell che la versione binaria del comando stampa la directory di lavoro corrente, sebbene la versione binaria abbia più opzioni.

7. Stampa tutte le posizioni contenenti l'eseguibile denominato pwd.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Memorizza il valore del comando “pwd” nella variabile (ad esempio a) e stampa il suo valore dalla variabile (importante per lo scripting della shell prospettiva).

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"

Current working directory is : /home/avi

In alternativa, possiamo usare printf, nell'esempio sopra.

9. Cambia la directory di lavoro corrente in qualsiasi cosa (ad esempio /home) e visualizzala nel prompt della riga di comando. Esegui un comando (ad esempio "ls") per verificare che tutto sia OK.

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '		[Notice single quotes in the example]
> ls

10. Imposta il prompt della riga di comando su più righe (dire qualcosa come di seguito).

/home
123#Hello#!

Quindi esegui un comando (ad esempio ls) per verificare che tutto sia OK.

avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'

/home
123#Hello#!

11. Controlla la directory di lavoro corrente e la directory di lavoro precedente in un colpo solo!

avi@tecmint:~$ echo “$PWD $OLDPWD”

/home /home/avi

12. Qual è il percorso assoluto (a partire da /) del file binario pwd.

/bin/pwd 

13. Qual è il percorso assoluto (a partire da /) del file sorgente pwd.

/usr/include/pwd.h 

14. Stampa il percorso assoluto (a partire da /) del file delle pagine di manuale pwd.

/usr/share/man/man1/pwd.1.gz

15. Scrivi uno script di shell che analizzi la directory corrente (diciamo tecmint) nella tua directory home. Se ti trovi nella directory tecmint verrà visualizzato “Bene! Sei nella directory tecmint " e poi stampa "Good Bye " altrimenti crea una directory tecmint sotto la tua home directory e ti chiede di cd ad esso.

Creiamo prima una directory "tecmint", sotto di essa creiamo un seguente file di script di shell con il nome "pwd.sh".

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

Successivamente, aggiungi il seguente script al file pwd.sh.

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

Dai il permesso di esecuzione ed eseguilo.

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh

Well you are in tecmint directory
Good Bye

Conclusione

pwd è uno dei comandi più semplici ma allo stesso tempo più popolari e più utilizzati. Un buon comando su pwd è fondamentale per utilizzare il terminale Linux. È tutto per ora. Sarò presto qui con un altro articolo interessante, fino ad allora rimanete sintonizzati e connessi a Tecmint.