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.