Linux / Comando / pwd: consultar el directorio de trabajo actual
pwd es un comando que imprime la ruta del directorio de trabajo actual (Current Working Directory). Se utiliza para verificar en qué directorio se encuentra actualmente en la terminal o para comprobar la ubicación base de rutas relativas en scripts de shell.
Generalmente, basta con ejecutarlo sin opciones, pero es importante conocer la diferencia entre -L, que muestra la ruta lógica en caso de que la ruta contenga enlaces simbólicos, y -P, que muestra la ruta real en el sistema de archivos.
¿Qué es el comando pwd?
pwd es la abreviatura de print working directory. Imprime la ruta absoluta del directorio que el shell o proceso está utilizando como base de trabajo.
pwd
Por ejemplo, si la ubicación actual es el directorio del proyecto del usuario, puede imprimirse como sigue.
/home/user/projects/web-app
El directorio de trabajo actual es la referencia para resolver rutas relativas. Una misma ruta relativa llamada config/settings.ini puede apuntar a diferentes archivos dependiendo del directorio desde el cual se ejecute el comando.
Sintaxis y uso básico
pwd [OPCIONES]
Como no es un comando que tome otras rutas como argumentos, normalmente se ejecuta solo, como sigue.
pwd
cd /var/log
pwd
Si cd /var/log tiene éxito, el segundo pwd imprime /var/log. Si falla, el directorio no cambia; no continúe una operación dependiente de la nueva ubicación sin comprobar el resultado de cd.
Diferencia entre -L y -P
Si el camino hasta la ubicación actual contiene enlaces simbólicos, la ruta lógica y la ruta física pueden ser diferentes.
| Opciones | Funcionamiento |
|---|---|
-L, --logical |
Se utiliza la ruta lógica recordada por la shell. Al moverse, el nombre del enlace simbólico usado puede permanecer en la ruta. |
-P, --physical |
Se imprime la ruta del directorio físico resultante de resolver los enlaces simbólicos. |
Comprobar la ruta lógica con -L
Este ejemplo supone que /srv/current ya es un enlace simbólico válido hacia /srv/releases/2026-09 y que ambos directorios son accesibles. No crea esa estructura: adapte la ruta a un enlace existente en su entorno.
cd /srv/current
pwd -L
Si la shell gestiona correctamente la ubicación lógica, la ruta del enlace introducida por el usuario puede mantenerse como sigue.
/srv/current
Verificar la ruta real con -P
pwd -P
Si /srv/current apunta a /srv/releases/2026-09, la ruta física puede mostrarse de la siguiente manera.
/srv/releases/2026-09
-P es útil cuando necesita verificar a qué directorio apunta realmente un enlace de distribución o cuando necesita una ruta que no dependa del nombre del enlace simbólico.
pwd incorporado en la shell y pwd externo
Varias shells, incluida Bash, proporcionan pwd como un comando incorporado. El sistema también puede tener instalado un ejecutable externo de GNU Coreutils.
type -a pwd
command -V pwd
Dependiendo del entorno, tanto el comando incorporado de la shell como el ejecutable externo pueden mostrarse de la siguiente manera.
pwd is a shell builtin
pwd is /usr/bin/pwd
Razón para usar el comando incorporado de la shell
Cuando la shell se mueve al directorio con cd, gestiona directamente su directorio de trabajo y la ruta lógica. Por lo tanto, pwd incorporado puede mostrar esa información sin iniciar un proceso separado.
Las opciones cortas -L y -P están disponibles en Bash y GNU pwd; las opciones largas de la tabla corresponden al ejecutable GNU. En Bash, el modo lógico es habitual por defecto, salvo que se active el modo físico. GNU pwd externo usa normalmente -P, pero cambia con POSIXLY_CORRECT. Especifique la opción cuando el resultado deba ser inequívoco.
Ejecutar explícitamente comandos externos
Para verificar el comportamiento de los archivos ejecutables de GNU Coreutils, se puede especificar la ruta completa. La ubicación real puede variar según la distribución.
/usr/bin/pwd
/usr/bin/pwd -P
En scripts que requieren portabilidad, es mejor no asumir que una ruta absoluta específica existe en todos los sistemas.
Variables de entorno PWD y OLDPWD
La shell puede gestionar la ubicación actual y la anterior mediante variables. Los nombres de las variables están en mayúsculas, por lo que deben distinguirse del comando pwd.
| Elemento | Significado |
|---|---|
pwd |
Comando para mostrar el directorio de trabajo actual. |
PWD |
La ruta lógica del directorio de trabajo actual que la shell recuerda. |
OLDPWD |
Generalmente es el directorio de trabajo que estaba justo antes. Se usa en cd -. |
printf '%s\n' "$PWD"
printf '%s\n' "$OLDPWD"
pwd -L
pwd -P
PWD es una variable de shell, por lo que si el usuario la cambia arbitrariamente o se encuentra en un estado anormal, puede no coincidir con la ubicación real. Si la ruta del sistema de archivos real es importante, verifíquelo con pwd -P.
Uso en scripts de shell
Verificar la ubicación de ejecución
Si el script se supone que se ejecuta desde un directorio específico, puede verificar la ubicación antes de trabajar.
current_dir=$(pwd -P) || exit 1
printf 'Directorio de trabajo actual: %s\n' "$current_dir"
Cuando use el resultado de la sustitución de comandos, envuelva la variable entre comillas dobles para mantener las rutas con espacios como una sola palabra.
Distinción de la ubicación del archivo del script
Lo que imprime pwd no es el directorio donde se guardó el script, sino el directorio de trabajo actual del proceso que ejecuta el script.
cd /tmp
/opt/tools/backup.sh
El ejemplo presupone que existe un script ejecutable /opt/tools/backup.sh que consulta pwd. Tras un cd /tmp correcto, el script muestra normalmente /tmp, a menos que cambie de directorio internamente. Para localizar el propio archivo del script, tenga en cuenta el shell, los enlaces simbólicos y la forma de invocación.
Comparación de comandos relacionados con pwd
| Comando | Propósito |
|---|---|
pwd |
Imprime la ruta del directorio de trabajo actual. |
cd |
Cambia el directorio de trabajo de la shell actual. |
realpath |
Normaliza el nombre de archivo o ruta indicada y lo imprime como ruta absoluta. |
dirname |
Imprime la parte de la ruta que excluye el último componente. |
readlink |
Verifica la cadena de destino almacenada en un enlace simbólico. |
Problemas comunes
Directorio actual eliminado o inaccesible
Si la ubicación actual o un directorio superior es eliminado por otro proceso o cambian los permisos de acceso, pwd podría no poder determinar la ruta y generar un error. Mueva a un directorio superior accesible y vuelva a verificar.
La ruta o salida no coincide con la esperada
Si se ha movido a través de un enlace simbólico, los resultados de pwd -L y pwd -P pueden ser diferentes. No es que una ruta esté equivocada, sino que muestran diferentes perspectivas: el nombre lógico y la ubicación física.
La ruta cambia en el script
Cron, systemd, trabajos de CI y contenedores pueden iniciar programas desde un directorio de trabajo diferente al de un terminal interactivo. Antes de usar rutas relativas, registre el entorno de ejecución con pwd, o use rutas absolutas claras y configure el directorio de trabajo.
FAQ
¿De qué es abreviatura pwd?
Es la abreviatura de print working directory y muestra la ruta del directorio de trabajo actual.
¿pwd y echo "$PWD" son lo mismo?
En un estado normal de shell, pueden aparecer rutas lógicas similares, pero no son el mismo comportamiento. PWD es una variable de shell y pwd es un comando que muestra la ubicación actual, mientras que pwd -P puede obtener la ruta física resolviendo enlaces simbólicos.
¿Cuál debo usar, pwd -L o pwd -P?
Si desea conservar el nombre de la ruta por la que el usuario se ha desplazado, utilice -L; si necesita la ruta real en el sistema de archivos resolviendo enlaces simbólicos, utilice -P.
¿pwd muestra la ubicación donde se guardó el script?
No. Muestra el directorio de trabajo actual del proceso que ejecuta el script. La ubicación del archivo del script y el directorio de trabajo actual pueden ser diferentes.
Para practicar el cambio de ubicación, consulte Linux / Comando / cd - Mover directorio y Lista de comandos de uso frecuente en Linux.
Para contrastar el comportamiento según la implementación, consulte Documentación oficial de pwd de GNU Coreutils y Especificación POSIX de pwd.




