Wikipedia ( link ) mówi mi zatem, że polecenie pwd
to jest skrótem „drukuj katalog roboczy” i ma to sens.
Ale w przypadku zmiennej środowiskowej „P” musi być akronimem dla czegoś innego niż print.
Słyszę, jak ludzie mówią o „bieżącym katalogu roboczym”, który brzmi lepiej i jest bardziej intuicyjny, ale zmienna środowiskowa wydaje się nazywać $ PWD, a nie $ CWD. Nikt nigdy nie powiedział: „Czy sprawdziłeś zmienną katalogu roboczego drukowania?”.
Obecnie bawię się serwerem aplikacji WWW uWSGI, a gdy go uruchamiam, mówi mi (na stronie statystyk uWSGI):
"cwd":"/home/velle/greendrinks",
więc oczywiście jak (bardziej intuicyjny skrót) cwd
powyżej pwd
.
Wydaje mi się, że próbuję dowiedzieć się, czy coś źle zrozumiałem, czy może chodzi tylko o nadanie zmiennej środowiskowej nieintuicyjnej nazwy?
źródło
$PWD
jest równoważne`pwd`
i to było wystarczające uzasadnienie.Odpowiedzi:
To zależy od tego, co robisz. Przede wszystkim
$PWD
jest zmienną środowiskową ipwd
jest wbudowaną powłoką lub rzeczywistym plikiem binarnym:Teraz wbudowane bash wypisze po prostu bieżącą wartość,
$PWD
chyba że użyjesz-P
flagi. Jak wyjaśniono whelp pwd
:pwd
Binarny, z drugiej strony, staje się aktualny katalog poprzezgetcwd(3)
wywołanie systemowe która zwraca taką samą wartość jakreadlink -f /proc/self/cwd
. Aby to zilustrować, spróbuj przejść do katalogu, który jest linkiem do innego:Podsumowując, w systemach GNU (takich jak Ubuntu)
pwd
iecho $PWD
są równoważne, chyba że użyjesz tej-P
opcji, ale/bin/pwd
są inne i zachowują się jakpwd -P
.Źródło /ubuntu//a/476633/291937
źródło
PWD
być zmienną środowiskową. W rzeczywistości jest to domyślny przypadek większości, jeśli nie wszystkich powłok, i to ma sens, aby zapewnić go procesom potomnym.$PWD
ipwd
(które zostały już wcześniej omówione w U&L), ale powodów, które doprowadziły do nazwania zmiennej „PWD
”.ksh88
który dokument to jako:PWD The present working directory set by the cd command.
Powinieneś dodać to do swojej odpowiedzi.$ PWD jest P athname obecnego W robocze D irectory
Gdy istnieją dowiązania symboliczne, wyniki mogą być różne od odczytania $ PWD do wykonania polecenia pwd .
źródło
$PWD
ipwd
?