Przejdź do głównej zawartości

pwd


  • pwd (print working directory) – wyświetla pełną, absolutną ścieżkę katalogu, w którym aktualnie znajduje się powłoka.
  • Zastosowania: skrypty potrzebujące bieżącej ścieżki, diagnostyka, potwierdzenie kontekstu pracy.
  • Dostępne jako builtin w bash, zsh, ksh, fish oraz jako program /bin/pwd (GNU coreutils); implementacje mogą się różnić w szczegółach (np. rozwiązywanie dowiązań symbolicznych).

Okno terminala
pwd [OPCJE]
  • Bez opcji – wypisuje bieżący katalog, zwykle w postaci absolutnej.
  • W GNU coreutils i powłokach możliwe są opcje wpływające na sposób rozwiązywania dowiązań symbolicznych.

ParametrOpis
-L(Logical) Wyświetl ścieżkę logiczną (z zachowaniem dowiązań z $PWD).
-P(Physical) Rozwiąż wszystkie dowiązania symboliczne – pokaż rzeczywistą ścieżkę na dysku.
--help(GNU) Wyświetl pomoc.
--version(GNU) Wyświetl wersję programu.

POSIX wymaga obsługi -L i -P; domyślnie zachowanie jest implementacyjne (bash domyślnie -L, ale można zmienić opcją set -o physical).


Okno terminala
# 1) Podstawowe wyświetlenie bieżącego katalogu
pwd
# Efekt: np. /home/user/projects
Okno terminala
# 2) Rozwiązanie dowiązań symbolicznych
pwd -P
# Efekt: /mnt/storage/data zamiast /data jeśli /data → /mnt/storage/data
Okno terminala
# 3) Wymuszenie ścieżki logicznej
pwd -L
# Efekt: Wyświetla ścieżkę z zachowaniem dowiązań zgodnie z $PWD.
Okno terminala
# 4) W skryptach: zapamiętanie katalogu początkowego
start_dir=$(pwd)
# ... operacje w innych katalogach ...
cd "$start_dir"

  • Builtin vs /bin/pwd: W powłokach używana jest wersja builtin, szybsza i zawsze zgodna z $PWD. Program /bin/pwd może zwrócić inny wynik przy nietypowych mountach/chrootach.
  • Zmienne środowiskowe: $PWD przechowuje bieżącą ścieżkę logiczną; w bash jest aktualizowana automatycznie.
  • Rozwiązania symbolicznych: Opcja -P jest przydatna w skryptach, które muszą znać faktyczną lokalizację plików.
  • Uprawnienia: Brak uprawnień do katalogu nadrzędnego może uniemożliwić poprawne rozwiązanie ścieżki fizycznej.
  • Zachowanie w podpowłoce: Wartość jest niezależna w każdej powłoce; zmiana katalogu w jednej nie wpływa na drugą.

Błąd / KomunikatPrzyczynaRozwiązanie
pwd: cannot access ..Brak uprawnień do jednego z katalogów w ścieżceUzyskaj wymagane uprawnienia lub uruchom jako inny użytkownik (np. sudo).
Różne wyniki pwd i $PWD$PWD przechowuje ścieżkę logiczną, pwd -P – fizycznąUżyj odpowiedniej opcji (-L lub -P) w zależności od potrzeb.
Niespójność w chroot/bind mount/bin/pwd odczytuje z FS, builtin z $PWDPreferuj builtin pwd w skryptach powłokowych.