Tutoriales

Instrucción pwd en Linux: 15 usos prácticos que debes conocer

pwd Parece uno de los comandos de Linux más simples, pero una vez que los enlaces simbólicos y los scripts de shell entran en juego, hay algunos detalles que vale la pena conocer. En esta guía lo pondremos en práctica. pwd ejemplos y nuestra cd Guía de comandos para la navegación de directorios relacionados.

Es posible que hayas entrado pwd Infinidad de veces sin pensarlo dos veces. Sin embargo, cuando esté trabajando en un directorio de enlace simbólico, escribiendo un script de shell que requiera la ruta actual o solucionando problemas por los cuales un comando se ejecuta desde una ubicación inesperada, aprenda cómo pwd Informar del directorio de trabajo resulta útil.

Boletín semanal de TechMint

Conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

¿Qué hace realmente la persona con discapacidad?

pwd representar Imprimir directorio de trabajo. Muestra la ruta absoluta al directorio en el que se encuentra actualmente, comenzando desde la raíz (/).

En la mayoría de los sistemas Linux, pwd Disponible en dos formas: como carcasa incorporada dentro de una carcasa, p. bash, zshy kshy como independiente /bin/pwd Directivas proporcionadas por GNU coreutils. Las dos versiones pueden comportarse de manera diferente cuando se trata de enlaces simbólicos.

pwd [OPTION]
Opcionesdescribir
-LPara mostrar rutas lógicas, utilice $PWD Incluso si la ruta contiene enlaces simbólicos.
-PMuestra la ruta física resolviendo enlaces simbólicos al objetivo real.
--helpMostrar información de ayuda y salir.
--versionMostrar información de la versión y salir.

Los ejemplos de esta guía se probaron en Ubuntu 26.04 LTS y Fedora 42. El comportamiento descrito aquí es consistente en todos los sistemas convencionales. distribución de linux Utilice las herramientas básicas de GNU.

Un detalle que fácilmente puede causar confusión es lo que sucede cuando usas ambos. -L y -P. Si se especifican dos opciones, la última opción tiene efecto.


Por ejemplo, pwd -L -P Usar el modo físico mientras eres pwd -P -L Utilice patrones lógicos.

También existe una diferencia importante entre las funciones integradas de Shell y GNU. pwd Binario cuando no se especifica ninguna opción. Bash incorporado pwd El valor predeterminado es el modo lógico (-L), mientras que la versión GNU coreutils está preestablecida en modo físico (-P).

Esta es la razón por la que los dos comandos a veces muestran rutas diferentes cuando se encuentra en un directorio al que se accede mediante un enlace simbólico.

1. Imprima su directorio de trabajo actual

Más fácil de usar pwd Es la ruta absoluta al directorio donde se encuentra actualmente la impresión.

pwd
/home/tecmint

2. Crea un enlace simbólico y muévelo a él.

mira como pwd Maneja enlaces simbólicos, creando enlaces simbólicos a directorios del sistema y accediendo a ellos. Usaremos este directorio en los siguientes ejemplos.

ln -s /var/www/html/ htm
cd htm

3. Utilice -L para imprimir rutas lógicas

Después de ingresar al directorio de enlaces simbólicos, pwd -L Muestra la ruta lógica, que contiene enlaces simbólicos para acceder a los directorios.

pwd -L
/home/tecmint/htm

4. Utilice -P para imprimir la ruta de la entidad.

este -P La opción muestra la ruta física. Resuelve enlaces simbólicos y muestra la ubicación real del directorio en el sistema de archivos.

pwd -P
/var/www/html

5. Verifique el comportamiento predeterminado de /bin/pwd

Puedes operar de forma independiente pwd Vea el binario directamente para ver cómo se comporta sin ninguna opción.

/bin/pwd
/var/www/html

esto coincide pwd -PNo pwd -Lmuestra el enlace del símbolo de análisis predeterminado del archivo binario GNU coreutils /bin/pwd.

Bash incorporado pwd El comportamiento es diferente. Traza el camino lógico a través $PWD variable y por defecto -L. Esta es la razón pwd y /bin/pwd Cuando trabaja en un directorio al que se accede a través de un enlace simbólico, a veces se muestra una ruta diferente.

Si la diferencia -L frente a -P simplemente explica una ruta confusa en uno de sus proyectos de enlace simbólico, compártala con compañeros de equipo que tengan el mismo problema.

6. Verifique la versión de su contraseña

Si está solucionando un problema con un script que depende de opciones o comportamientos específicos de Coreutils, puede ayudarle a verificar qué versión pwd estás usando.

/bin/pwd --version
pwd (GNU coreutils) 9.11
pwd (GNU coreutils) 9.11
Copyright (C) 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Si utiliza comandos coreutils en scripts y desea ver cómo se comportan en la práctica, Más de 100 cursos de instrucción básica de Linux Vale la pena explorar sobre Protecmint.

Error común: asumir que pwd acepta una ruta

A diferencia de comandos como comando cd o ls comando, comando de contraseña No se acepta la ruta del directorio para operar. Informa el directorio de trabajo del shell actual.

Por ejemplo:

pwd /home

Dependiendo de si está ejecutando el shell integrado o un binario independiente, recibirá un error en lugar de un cambio de directorio. pwd Su directorio actual nunca será cambiado.

7. Encuentre todas las contraseñas disponibles en el sistema.

Es posible que su shell tenga incorporado pwd y un binario coreutils independiente. La directiva de tipo muestra qué versión se está utilizando y dónde se pueden encontrar otras versiones.

type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

Esto es útil en las siguientes situaciones: pwd El comportamiento difiere del /bin/pwdya que le permite confirmar exactamente qué implementación está analizando su shell.

8. Almacene el directorio actual en una variable.

Puedes capturar la salida. pwd En las variables de shell, esto es útil al escribir scripts que necesitan reutilizar el directorio actual.

a=$(pwd)
echo "Current working directory is: $a"
Current working directory is: /home/tecmint

Usar sustitución de comandos $(pwd) Deja que el caparazón se ejecute pwd y asignar su salida a una variable.

Si almacenar la ruta actual simplemente le evita codificar el directorio en su secuencia de comandos, compártalo con alguien que todavía ingrese la ruta manualmente.

9. Verifique los directorios actual y anterior.

Bash realiza un seguimiento del directorio actual y del directorio que abandonó recientemente. Estos pueden pasar a través $PWD y $OLDPWD variable.

echo "$PWD $OLDPWD"
/home /home/tecmint

aquí, $PWD Contiene el directorio de trabajo actual, mientras que $OLDPWD Contiene el anterior. Esta es también la razón de comandos como cd Útil para volver rápidamente al directorio que acaba de abandonar.

10. Muestra el directorio actual en el carácter del indicador de Shell.

Puede configurar el mensaje de Bash para que muestre automáticamente el directorio actual, de modo que no necesite ejecutar pwd Cada vez que quieras comprobar dónde estás.

PS1='\w\$ '

Por ejemplo:

~/tecmint$

este \w en fiesta PS1 es un escape rápido que se extiende al directorio de trabajo actual, use ~ para su directorio personal. lo mejor es colocar $(pwd) directamente en PS1porque las sustituciones de comandos dentro de un trabajo se evalúan cuando se ejecuta el trabajo, en lugar de hacerlo automáticamente cada vez que se muestra el mensaje.

Si un mensaje de shell desactualizado alguna vez le hace preguntarse si realmente cambió de directorio, páselo a la persona que administra la configuración del shell de su equipo.

Error común: expandir $(pwd) al configurar PS1

Es fácil de asumir PS1="$(pwd)> «Continuará mostrando su directorio actual. Pero, $(pwd) Cuando asigna variables, el comando se evalúa, por lo que el símbolo del mensaje puede permanecer en ese directorio.

Utilice el integrado de Bash \w o \W Por el contrario, los escapes de mensajes están diseñados para actualizarse automáticamente cuando se muestra el mensaje.

PS1='\w\$ '

Si realmente necesita reemplazar un comando en un mensaje personalizado, coloque el comando entre comillas simples para que Bash pueda expandirlo cuando muestre el mensaje:

PS1='$(pwd)> '

Luego cambie el directorio y use el mensaje de verificación cd /tmp El mensaje ahora debería reflejar el nuevo directorio.

11. Encuentre la ruta absoluta del archivo binario pwd.

Útil cuando hay varias versiones de un comando en su sistema $PATH.

which pwd
/bin/pwd

Recuerde que solo encontrará archivos ejecutables en su directorio $PATH. No reconoce las funciones integradas de Bash. pwd,es por eso type -a pwd El ejemplo anterior es más útil cuando desea ver todas las implementaciones disponibles.

12. Encuentra la página de manual de pwd

La ubicación de la página de manual de comandos puede variar entre distribuciones. Sin asumir un camino fijo, dejemos man Le indica dónde está instalada la página.

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

Luego puedes abrirlo normalmente usando:

man pwd

13. Usar pwd en scripts de shell condicionales

pwd Se vuelve más útil en scripts cuando necesita verificar el directorio en el que se ejecuta el script antes de realizar una acción. Primero, cree un directorio de prueba y un script:

mkdir -p ~/tecmint && cd ~/tecmint
nano pwd-check.sh

Agregue lo siguiente:

#!/bin/bash
x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]; then
  echo "You're in the tecmint directory"
else
  echo "Not in tecmint, currently in: $x"
fi

Haga el script ejecutable y ejecútelo:

chmod +x pwd-check.sh
./pwd-check.sh
You're in the tecmint directory

Este script almacena el directorio de trabajo actual en x Luego compárelo con la ruta esperada y continúe.

Si se compara $(pwd) En el script que acaba de reemplazar la frágil verificación del directorio codificado, páselo a sus compañeros de equipo que escriben scripts de configuración similares.

14. Obtenga el directorio principal sin cambiar el directorio.

puedes combinar pwd y dirname Obtiene el directorio principal del directorio de trabajo actual sin moverse allí.

cd ~/tecmint/htm 2>/dev/null || cd ~/tecmint
echo "Parent directory: $(dirname "$(pwd)")"
Parent directory: /home/tecmint

aquí, pwd Proporciona el directorio actual y dirname elimina el elemento de ruta final para devolver su directorio principal.

15. Compara pwd y realpath

este realpath El comando resuelve la ruta actual a su ubicación física canónica. comparar con eso pwd -P es una forma rápida de verificar que dos comandos resuelven la misma ruta física.

cd ~/tecmint/htm
pwd -P
realpath .
/var/www/html
/var/www/html

Ambos comandos resolvieron el problema. htm Enlace simbólico y muestra el directorio de destino real.

Si todavía eres nuevo en las secuencias de comandos Bash, nuestro Curso de secuencias de comandos Bash Profundice en variables, condicionales, sustitución de comandos y manejo de rutas reales.
en conclusión

A estas alturas ya deberías tener una idea clara de cómo comando de contraseña No solo imprima el directorio actual. has visto como -L y -P Manejo de enlaces simbólicos de manera diferente, por qué Bash está integrado pwd y /bin/pwd Los binarios pueden devolver diferentes rutas y cómo usarlos. pwd En scripts, indicaciones de shell y comparaciones de rutas.

La forma más sencilla de descubrir este comportamiento es intentarlo usted mismo. Busque un directorio de enlaces simbólicos en el sistema Linux, cd Entra y corre pwd -L seguido por pwd -P. Ver las rutas lógicas y físicas una al lado de la otra facilita la comprensión de las diferencias.

¿Alguna vez ha encontrado un script que se comportó inesperadamente porque la ruta lógica era diferente de la ruta física o el símbolo del shell mostraba el directorio incorrecto? Háganos saber qué sucedió en los comentarios a continuación.

Si este artículo fue útil, Con alguien de tu equipo.

Boletín semanal de TechMint

Conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para obtener el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba