El comando pwd (Print Working Directory) es un comando fundamental en Linux y otros sistemas Unix-like que muestra la ruta absoluta del directorio de trabajo actual.

Sintaxis básica

pwd [opciones]

No requiere argumentos y simplemente muestra la ruta completa del directorio actual.

Opciones disponibles

OpciónDescripción
-L--logicalMuestra la ruta lógica (resuelve enlaces simbólicos, opción por defecto en muchos sistemas)
-P--physicalMuestra la ruta física real (sin seguir enlaces simbólicos)
--helpMuestra información de ayuda
--versionMuestra información de versión

Ejemplos prácticos

1. Mostrar el directorio actual

pwd

Salida típica:

/home/usuario/proyectos

2. Usar pwd en un script

#!/bin/bash
DIR_ACTUAL=$(pwd)
echo "El script se ejecuta desde: $DIR_ACTUAL"

3. Ruta lógica (-L)

cd /var/www/html
ln -s /var/www/html enlace
cd enlace
pwd -L

Salida:

/var/www/html/enlace

4. Ruta física (-P)

cd /var/www/html/enlace
pwd -P

Salida:

/var/www/html

Diferencia entre rutas lógicas y físicas

El comportamiento de pwd puede variar según si se usan enlaces simbólicos:

TipoDescripciónEjemplo
Ruta lógicaMuestra la ruta como fue ingresada, incluyendo enlaces simbólicos/ruta/enlace
Ruta físicaResuelve todos los enlaces simbólicos y muestra la ruta real/ruta/real/directorio

Notas importantes

  • pwd es un comando built-in (incorporado) en la mayoría de shells modernos (bash, zsh, etc.), pero también existe como binario independiente (/bin/pwd).
  • En scripts, es común capturar la salida de pwd en una variable: DIR_ACTUAL=$(pwd).
  • La variable de entorno $PWD también contiene el directorio actual y se actualiza automáticamente.
  • Para ver todas las opciones disponibles, consulta el manual con man pwd.

Relación con otros comandos

pwd se usa frecuentemente en combinación con otros comandos:

1. Con cd para volver al directorio anterior

DIR_ANTERIOR=$(pwd)
cd /otra/ruta
# Hacer algo...
cd "$DIR_ANTERIOR"

2. Con ls para listar el directorio actual

ls $(pwd)

3. En combinación con variables de entorno

echo "Directorio actual: $PWD"

Conclusión

El comando pwd es una herramienta simple pero esencial para navegar por el sistema de archivos en Linux. Proporciona información fundamental sobre tu ubicación actual en el sistema de archivos, lo que es especialmente útil en scripts y cuando trabajas con múltiples directorios.

Para aprender más sobre todas las opciones disponibles, siempre puedes consultar el manual con el comando:

man pwd

Preguntas frecuentes

¿Cuál es la diferencia entre pwd y echo $PWD?

Ambos muestran el directorio actual, pero pwd es un comando que consulta el sistema, mientras que $PWD es una variable de entorno mantenida por el shell. En la mayoría de casos son equivalentes, pero pueden diferir en situaciones avanzadas con enlaces simbólicos.

¿Por qué necesito pwd si mi prompt ya muestra el directorio?

El prompt puede configurarse para mostrar solo parte de la ruta o información diferente. pwd siempre muestra la ruta completa y es útil en scripts o cuando necesitas la ruta exacta para otros comandos.

¿Cómo puedo usar la salida de pwd en otro comando?

Puedes usar sustitución de comandos: ls $(pwd) o ls `pwd` (forma antigua).