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:
Lo típico, podemos encontrar la ayuda de pwd con man (aunque no tiene muchas opciones que digamos):
man pwd
Tenemos las opciones:
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..
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: