El comando PWD Linux

Pwd es un comando de linux que nos permite conocer en qué ruta de la máquina nos encontramos, mostrando la ruta absoluta (print working directory – pwd).

 
Más de una vez suele ocurrir que el bash de una máquina no nos muestra la ruta en la que nos encontramos. Es entonces cuando el comando pwd resulta muy útil, y así podemos saber la ruta en la que nos encontramos.
 
El comportamiento del comando pwd es diferente dependiendo de si usamos el comando autónomo o el comando integrado que es parte de la shell.

Para averiguar que versión del comando usa nuestro sistema, usamos el comando type, que nos muestra info sobre el tipo de comando


 

eltallerdelbit@debian10:~$ pwd
/home/eltallerdelbit
eltallerdelbit@debian10:~$ type -a pwd
pwd es una orden interna del shell
pwd is /usr/bin/pwd
pwd is /bin/pwd

 

si queremos usar el programa en lugar del comando de shell, usamos el path completo del comando:

/bin/pwd

 

 
Vamos a ver algo más de info acerca del comando.
 

El comando pwd que es parte de la shell, guarda la ruta que usamos cada vez que usamos el comando cd, y la almacena en la variable $PWD

 

Podemos comprobarlo entrando en un directorio y visualizando el contenido de la variable

$PWD


 

Volvemos a entrar en otro directorio y cargamos de nuevo el valor de la variable, vemos que el valor es siempre el mismo que el directorio en el que nos encontramos

pwd realmente usa el comando getcwd para recoger el directorio en el que nos encontramos en cada momento:

 

 

Opciones y ayuda del comando pwd

 

Lo típico, podemos encontrar la ayuda de pwd con man (aunque no tiene muchas opciones que digamos):

man pwd

 

 

 

 

Las opciones de pwd

 
Tenemos las opciones:
 

  • pwd -L : Logical. Usa el pwd del entorno, incluso si contiene enlaces simbólicos.
  • pwd -P : Physical. Evita todos los enlaces simbólicos. (no muestra enlaces simbólicos, muestra los nombres reales de los directorios).

 

La ayuda de pwd no especifica qué opción utiliza por defecto. También es posible que cambie dependiendo de la versión de distro..

 

 
 

Vemos cómo funcionan estos parámetros de pwd

 

Creamos un enlace simbólico en un subdirectorio de nuestra home, y este enlace apuntará a un subdirectorio de /var/tmp
 
nos encontramos en

eltallerdelbit@debian10:~/test$ pwd
/home/eltallerdelbit/test

 
Ahora desde este directorio, creamos un enlace simbólico hacia /var/tmp/mihome/

eltallerdelbit@debian10:~$ ln -s /var/tmp/mihome/ test/

 

nuestro directorio /var/tmp/mihome/   apuntará a /home/eltallerdelbit/test


 
lo vemos :

eltallerdelbit@debian10:~/test$ ls -la
total 8
drwxr-xr-x 2 eltallerdelbit eltallerdelbit 4096 jul 12 21:12 .
drwxr-xr-x 16 eltallerdelbit eltallerdelbit 4096 jul 12 21:12 ..
lrwxrwxrwx 1 eltallerdelbit eltallerdelbit 16 jul 12 21:12 mihome -> /var/tmp/mihome/

 

Ahora entramos en dicho directorio (/var/tmp/mihome/) :

eltallerdelbit@debian10:~/test$ cd mihome

 
y ejecutamos pwd. Descubrimos que se muestra la ruta del enlace simbólico que hemos creado previamente:

eltallerdelbit@debian10:~/test/mihome$ pwd
/home/eltallerdelbit/test/mihome

 

y pwd – L hace lo mismo (usa pwd incluso si existen enlaces simbolicos)

eltallerdelbit@debian10:~/test/mihome$ pwd -L
/home/eltallerdelbit/test/mihome

 
 

pero si ejecutamos pwd -P, aparece :

eltallerdelbit@debian10:~/test/mihome$ pwd -P
/var/tmp/mihome

 
Vemos que evita los enlaces simbólicos: