Wyszukiwanie w witrynie

15 Przykłady poleceń „pwd” (drukowanie katalogu roboczego) w systemie Linux


Dla osób pracujących z wierszem poleceń Linuksa bardzo pomocne jest polecenie „pwd”, które informuje, gdzie się znajdujesz – w którym katalogu, zaczynając od katalogu głównego (/). Specjalnie dla nowicjuszy Linuksa, którzy podczas nawigacji mogą zgubić się wśród katalogów w interfejsie wiersza poleceń, na ratunek przychodzi polecenie „pwd”.

Co to jest pwd?

pwd” oznacza „Drukuj katalog roboczy”. Jak sama nazwa wskazuje, polecenie „pwd” wypisuje bieżący katalog roboczy lub po prostu katalog, w którym aktualnie znajduje się użytkownik. Wypisuje nazwę bieżącego katalogu z pełną ścieżką, zaczynając od katalogu głównego (/). To polecenie jest wbudowane w polecenie powłoki i jest dostępne w większości powłok – bash, Bourne Shell, ksh, zsh itp.

Podstawowa składnia pwd:
pwd [OPTION]
Opcje używane z pwd
 Options

 Opis

 -L (logical)

 Użyj PWD ze środowiska, nawet jeśli zawiera dowiązania symboliczne

 -P (physical)

 Unikaj wszelkich dowiązań symbolicznych

 –help

 Wyświetl tę pomoc i wyjdź

 –version

 Wyprowadź informacje o wersji i wyjdź

Jeżeli używane są zarówno opcje „-L”, jak i „-P”, priorytet ma opcja „L”. Jeśli w znaku zachęty nie zostanie podana żadna opcja, pwd będzie unikać wszystkich dowiązań symbolicznych, tj. weźmie pod uwagę opcję „-P”.

Status wyjścia polecenia pwd:

0

Sukces

Non-zero

Błąd

Celem tego artykułu jest dokładne omówienie polecenia Linux „pwd” wraz z praktycznymi przykładami.

1. Wydrukuj bieżący katalog roboczy.

avi@tecmint:~$ /bin/pwd

/home/avi

2. Utwórz dowiązanie symboliczne do folderu (powiedzmy /var/www/html do swojego katalogu domowego jako htm). Przejdź do nowo utworzonego katalogu i wydrukuj katalog roboczy z dowiązaniami symbolicznymi i bez dowiązań symbolicznych.

Utwórz dowiązanie symboliczne do folderu /var/www/html jako htm w swoim katalogu domowym i przejdź do niego.

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

3. Wydrukuj katalog roboczy ze środowiska, nawet jeśli zawiera dowiązania symboliczne.

avi@tecmint:~$ /bin/pwd -L

/home/avi/htm

4. Wydrukuj aktualny fizyczny katalog roboczy, rozwiązując wszystkie dowiązania symboliczne.

avi@tecmint:~$ /bin/pwd -P

/var/www/html

5. Sprawdź, czy dane wyjściowe poleceń „pwd” i „pwd -P” są takie same, czy nie, tj. czy nie podano żadnych opcji w run-time „pwd” automatycznie uwzględnia opcję -P lub nie.

avi@tecmint:~$ /bin/pwd

/var/www/html

Wynik: Z powyższych wyników przykładów 4 i 5 jasno wynika (oba wyniki są takie same), zatem jeśli nie określono żadnych opcji za pomocą polecenia „pwd ”, automatycznie uwzględnia opcję „-P”.

6. Wydrukuj wersję polecenia „pwd”.

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

Uwaga: Polecenie „pwd” jest często używane bez opcji i nigdy nie jest używane z argumentami.

Ważne: mogłeś zauważyć, że powyższe polecenie wykonujemy jako „/bin/pwd ”, a nie „pwd ”.

Jaka jest więc różnica? Cóż, samo „pwd” oznacza pwd wbudowane w powłokę. Twoja powłoka może mieć inną wersję pwd. Proszę zapoznać się z instrukcją. Kiedy używamy /bin/pwd, wywołujemy binarną wersję tego polecenia. Zarówno powłoka, jak i wersja binarna polecenia Drukuje bieżący katalog roboczy, chociaż wersja binarna ma więcej opcji.

7. Wydrukuj wszystkie lokalizacje zawierające plik wykonywalny o nazwie pwd.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Zapisz wartość polecenia „pwd” w zmiennej (powiedzmy a) i wydrukuj jej wartość ze zmiennej (ważne dla skryptów powłoki perspektywiczny).

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"

Current working directory is : /home/avi

Alternatywnie możemy użyć printf w powyższym przykładzie.

9. Zmień bieżący katalog roboczy na dowolny (powiedzmy /home) i wyświetl go w wierszu poleceń. Wykonaj polecenie (powiedz „ls”), aby sprawdzić, czy wszystko jest OK.

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '		[Notice single quotes in the example]
> ls

10. Ustaw wielowierszowy wiersz poleceń (powiedz coś jak poniżej).

/home
123#Hello#!

A następnie wykonaj polecenie (powiedz ls), aby sprawdzić, czy wszystko jest OK.

avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'

/home
123#Hello#!

11. Sprawdź bieżący katalog roboczy i poprzedni katalog roboczy za jednym razem!

avi@tecmint:~$ echo “$PWD $OLDPWD”

/home /home/avi

12. Jaka jest ścieżka bezwzględna (zaczynając od /) pliku binarnego pwd.

/bin/pwd 

13. Jaka jest ścieżka bezwzględna (zaczynając od /) pliku źródłowego pwd.

/usr/include/pwd.h 

14. Wydrukuj ścieżkę bezwzględną (zaczynając od /) pliku stron podręcznika pwd.

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

15. Napisz skrypt powłoki, który przeanalizuje bieżący katalog (powiedzmy tecmint) w Twoim katalogu domowym. Jeśli jesteś w katalogu tecmint, wyświetli się komunikat „No cóż! Jesteś w katalogu tecmint ”, a następnie wydrukuj „Do widzenia” w przeciwnym razie utwórz katalog tecmint w swoim katalogu domowym i poproś o cd b> do tego.

Utwórzmy najpierw katalog „tecmint”, a następnie utwórz w nim następujący plik skryptu powłoki o nazwie „pwd.sh”.

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

Następnie dodaj następujący skrypt do pliku pwd.sh.

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

Daj uprawnienia do wykonywania i uruchom je.

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh

Well you are in tecmint directory
Good Bye

Wniosek

pwd to jedno z najprostszych, a jednocześnie najpopularniejszych i najczęściej używanych poleceń. Dobra komenda za pomocą pwd jest podstawą korzystania z terminala Linux. To wszystko na teraz. Wkrótce będę tu ponownie z kolejnym interesującym artykułem, do tego czasu bądź na bieżąco i bądź w kontakcie z Tecmint.