Vyhledávání na webu

15 Příklady příkazů 'pwd' (Print Working Directory) v Linuxu


Pro ty, kteří pracují s příkazovým řádkem Linuxu, je velmi užitečný příkaz „pwd“, který říká, kde se nacházíte – ve kterém adresáři, počínaje kořenem (/). Speciálně pro nováčky Linuxu, kteří se mohou během navigace ztratit mezi adresáři v rozhraní příkazového řádku, přichází na záchranu příkaz „pwd“.

Co je pwd?

pwd“ znamená „Tisk pracovního adresáře“. Jak název napovídá, příkaz ‚pwd‘ vytiskne aktuální pracovní adresář nebo jednoduše uživatel adresáře v současnosti je. Vypíše název aktuálního adresáře s úplnou cestou počínaje kořenem (/). Tento příkaz je zabudován do příkazu shellu a je dostupný ve většině prostředí – bash, Bourne shell, ksh,zsh atd.

Základní syntaxe pwd:
pwd [OPTION]
Možnosti používané s pwd
 Options

 Popis

 -L (logical)

 Používejte PWD z prostředí, i když obsahuje symbolické odkazy

 -P (physical)

 Vyhněte se všem symbolickým odkazům

 –help

 Zobrazte tuto nápovědu a ukončete

 –version

 Vytisknout informace o verzi a ukončit

Pokud jsou použity obě možnosti „-L“ a „-P“, má prioritu možnost „L“. Pokud není ve výzvě zadána žádná možnost, pwd se vyhne všem symbolickým odkazům, tj. vezme v úvahu možnost „-P“.

Stav ukončení příkazu pwd:

0

Úspěch

Non-zero

Selhání

Tento článek si klade za cíl poskytnout vám hluboký přehled o linuxovém příkazu „pwd“ s praktickými příklady.

1. Vytiskněte aktuální pracovní adresář.

avi@tecmint:~$ /bin/pwd

/home/avi

2. Vytvořte symbolický odkaz na složku (řekněme /var/www/html do svého domovského adresáře jako htm). Přejděte do nově vytvořeného adresáře a vytiskněte pracovní adresář se symbolickými odkazy a bez symbolických odkazů.

Ve svém domovském adresáři vytvořte symbolický odkaz složky /var/www/html jako htm a přesuňte se do něj.

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

3. Tisk pracovního adresáře z prostředí, i když obsahuje symbolické odkazy.

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

/home/avi/htm

4. Vytiskněte aktuální fyzický aktuální pracovní adresář vyřešením všech symbolických odkazů.

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

/var/www/html

5. Zkontrolujte, zda je výstup příkazu „pwd“ a „pwd -P“ stejný nebo ne, tj. pokud nejsou uvedeny žádné možnosti na za běhu „pwd“ automaticky bere v úvahu volbu -P nebo ne.

avi@tecmint:~$ /bin/pwd

/var/www/html

Výsledek: Je to jasné z výše uvedeného výstupu příkladu 4 a 5 (oba výsledky jsou stejné), takže pokud nejsou zadány žádné možnosti příkazem „pwd “, automaticky bere v úvahu možnost „-P “.

6. Vytiskněte verzi vašeho příkazu „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.

Poznámka: Příkaz „pwd“ se často používá bez možností a nikdy se nepoužívá s argumenty.

Důležité: Možná jste si všimli, že výše uvedený příkaz provádíme jako „/bin/pwd “ a nikoli „pwd “.

Jaký je tedy rozdíl? Samotné „pwd“ znamená vestavěné pwd v shellu. Váš shell může mít jinou verzi pwd. Podívejte se prosím do manuálu. Když používáme /bin/pwd, voláme binární verzi tohoto příkazu. Jak shell, tak binární verze příkazu Tiskne aktuální pracovní adresář, i když binární verze má více možností.

7. Vytiskněte všechna umístění obsahující spustitelný soubor s názvem pwd.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Uložte hodnotu příkazu „pwd “ do proměnné (řekněme a) a vytiskněte její hodnotu z proměnné (důležité pro skriptování shellu perspektivní).

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

Current working directory is : /home/avi

Alternativně můžeme použít printf ve výše uvedeném příkladu.

9. Změňte aktuální pracovní adresář na cokoliv (řekněme /home) a zobrazte jej v příkazovém řádku. Provedením příkazu (řekněte „ls‘) ověřte, zda je vše OK.

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

10. Nastavte víceřádkový příkazový řádek (řekněme něco jako níže).

/home
123#Hello#!

A pak spusťte příkaz (řekněme ls), abyste zkontrolovali, zda je vše OK.

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

/home
123#Hello#!

11. Zkontrolujte aktuální pracovní adresář a předchozí pracovní adresář v jednom GO!

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

/home /home/avi

12. Jaká je absolutní cesta (začínající od /) k binárnímu souboru pwd.

/bin/pwd 

13. Jaká je absolutní cesta (počínaje /) ke zdrojovému souboru pwd.

/usr/include/pwd.h 

14. Vytiskněte absolutní cestu (začínající od /) k souboru manuálových stránek pwd.

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

15. Napište skript shellu, který analyzuje aktuální adresář (řekněme tecmint) ve vašem domovském adresáři. Pokud jste v adresáři tecmint, zobrazí se „No! Jste v adresáři tecmint “ a poté vytiskněte „Nashledanou“, jinak vytvořte adresář tecmint ve svém domovském adresáři a požádejte vás o cd b> k tomu.

Nejprve vytvoříme adresář ‚tecmint‘, pod ním vytvoříme následující soubor skriptu shellu s názvem ‚pwd.sh‘.

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

Dále přidejte následující skript do souboru 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

Udělte oprávnění ke spuštění a spusťte jej.

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

Well you are in tecmint directory
Good Bye

Závěr

pwd je jedním z nejjednodušších, ale nejpopulárnějších a nejpoužívanějších příkazů. Dobré ovládání přes pwd je základem pro používání linuxového terminálu. To je prozatím vše. Brzy tu budu znovu s dalším zajímavým článkem, do té doby zůstaňte naladěni a ve spojení s Tecmintem.