Które polecenie w systemie Linux / UNIX wypisuje mój bieżący katalog za pomocą sh
powłoki (nie bash
)?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Które polecenie w systemie Linux / UNIX wypisuje mój bieżący katalog za pomocą sh
powłoki (nie bash
)?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Odpowiedzi:
Spróbować pwd
.
$ pwd
/home/<username>
/dev
jest coś o rozwoju (kody źródłowe lub coś w tym stylu)
Chociaż ogólna odpowiedź brzmi pwd
: pamiętaj, że może to dać różne wyniki w zależności od tego, w jaki sposób dotarłeś do danego katalogu i czy trasa zawierała dowiązania symboliczne.
Na przykład, jeśli masz nazwany katalog real
i dowiązanie symboliczne do tego katalogu virtual
, a ty cd
do virtual
katalogu, to pwd
pokaże tę virtual
nazwę katalogu, nawet jeśli katalog, w którym aktualnie się znajdujesz, to real
.
Aby pokazać prawdziwy katalog bazowy, użyj albo pwd -P
lub readlink -f
(dla dowolnej ścieżki):
$ mkdir prawdziwy $ ln -s prawdziwy wirtualny $ cd virtual $ pwd / home / nazwa użytkownika / tmp / virtual $ pwd -P / home / nazwa użytkownika / tmp / real $ readlink -f. / home / nazwa użytkownika / tmp / real
Zauważ, że powłoki często zastępują pwd
polecenie własną wersją wewnętrzną, więc w moim systemie (RHEL6), mimo że pwd(1)
strona podręcznika sugeruje, że --physical
to zadziała, a -P
ponieważ działam, bash
nie:
$ pwd - fizyczny bash: pwd: -: niepoprawna opcja pwd: wykorzystanie: pwd [-LP] $ / bin / pwd --physical / home / nazwa użytkownika / tmp / real $ / usr / bin / env pwd --physical / home / nazwa użytkownika / tmp / real
Jak powiedzieli inni, pwd
zwykle wykonuje to dobrze. Chciałbym jednak dodać pomysł, który mi pomógł.
We wszystkich powszechnie używanych dziś powłokach można dostosować wygląd wiersza polecenia. Lubię dostosowywać mój, aby wyświetlał mi zarówno nazwę komputera, na którym pracuję, jak i mój katalog roboczy. W ten sposób zawsze wiem, gdzie jestem. (Część nazwy komputera pomaga mi zrozumieć, czy okno terminala, którego używam, zostało użyte do SSH do zdalnego serwera.) Na przykład, kiedy otwieram nowe okno terminala na moim laptopie, który nazywam Plastico, widzę to:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Widać, że to skrót mojego katalogu domowego jako ~
. Uważam, że robienie tego dla moich podpowiedzi terminalowych jest niezwykle przydatne - zawsze wiem na pierwszy rzut oka dokładnie, gdzie jestem, nawet bardziej niż gdybym patrzył w okno Findera.
W tcsh robię to, dodając set prompt = 'Plastico %~%# '
do mojego pliku .tcshrc w moim katalogu domowym. Zrobiłem to również na ksh, dodając export PS1="Plastico $PWD $ "
do mojego pliku .profile. Ale będąc użytkownikiem Linuksa, prawdopodobnie używasz Basha, z którym nie mam dużego doświadczenia (jestem takim dziwakiem). Ale wygląda na to, że mogę to zrobić, dodając PS1="Plastico \w $ "
do mojego pliku .bashrc.
Edycja: Właśnie zauważyłem stany OP, którymi jesteś zainteresowany sh, a nie bash. No cóż; mam nadzieję, że ludzie uznają to za przydatne niezależnie.
Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >
lub coś takiego.
$ pwd
/your/current/directory
$
pwd
pochodzi z katalogu roboczego drukowania .
Imię
pwd - wypisuje nazwę bieżącego / roboczego katalogu
Streszczenie
pwd [OPCJA] ...
Opis
Wydrukuj pełną nazwę pliku bieżącego katalogu roboczego.
-L , --logiczne
używaj PWD ze środowiska, nawet jeśli zawiera dowiązania symboliczne
-P , --fizyczne
unikaj wszystkich dowiązań symbolicznych
--Wsparcie
wyświetl tę pomoc i wyjdź
--wersja
wyświetla informacje o wersji i kończy działanie
UWAGA: twoja powłoka może mieć własną wersję pwd, która zwykle zastępuje opisaną tutaj wersję. Zapoznaj się z dokumentacją powłoki, aby uzyskać szczegółowe informacje na temat obsługiwanych przez nią opcji.
(...)