Jadi Wikipedia (tautan) memberi tahu saya bahwa perintah pwd
adalah kependekan dari "print working directory", dan itu masuk akal.
Tetapi untuk variabel lingkungan, "P" harus merupakan akronim untuk sesuatu selain print.
Saya mendengar orang berbicara tentang "direktori kerja saat ini", yang terdengar lebih baik dan lebih intuitif, tetapi variabel lingkungan tampaknya masih disebut $PWD, dan bukan $CWD. Tidak ada yang pernah mengatakan “Apakah Anda memeriksa variabel direktori kerja cetak?”.
Saat ini saya sedang bermain-main dengan server aplikasi web uWSGI, dan ketika menjalankannya memberitahu saya (pada halaman statistik uWSGI):
"cwd":"/home/velle/greendrinks",
jadi mereka jelas menyukai (akronim yang lebih intuitif) cwd
lebih dari pwd
.
Saya kira saya mencoba mencari tahu apakah saya salah memahami sesuatu, atau apakah itu hanya masalah memberi variabel lingkungan nama yang tidak intuitif?
Jawaban yang Diterima:
Itu tergantung pada apa yang Anda lakukan. Pertama-tama, $PWD
adalah variabel lingkungan dan pwd
adalah shell builtin atau biner yang sebenarnya:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
Sekarang, bash builtin hanya akan mencetak nilai saat ini dari $PWD
kecuali jika Anda menggunakan -P
bendera. Seperti yang dijelaskan di help pwd
:
pwd: pwd [-LP]
Cetak nama direktori kerja saat ini.
Opsi:
-L
cetak nilai
$PWD
jika nama direktori kerja saat ini
-P
mencetak direktori fisik, tanpa tautan simbolik apa pun
Secara default, 'pwd' berperilaku seolah-olah '-L' ditentukan.
pwd
biner, di sisi lain, mendapatkan direktori saat ini melalui getcwd(3)
panggilan sistem yang mengembalikan nilai yang sama dengan readlink -f /proc/self/cwd
.
Sebagai ilustrasi, coba pindah ke direktori yang merupakan tautan ke direktori lain:
$ ls -l
total 4
drwxr-xr-x 2 terdon terdon 4096 Jun 4 11:22 foo
lrwxrwxrwx 1 terdon terdon 4 Jun 4 11:22 linktofoo -> foo/
$ cd linktofoo
$ echo $PWD
/home/terdon/foo/linktofoo
$ pwd
/home/terdon/foo/linktofoo
$ /bin/pwd
/home/terdon/foo/foo
Jadi, kesimpulannya, pada sistem GNU (seperti Ubuntu), pwd
dan echo $PWD
setara kecuali Anda menggunakan -P
pilihan, tapi /bin/pwd
berbeda dan berperilaku seperti pwd -P
.
Sumber https://askubuntu.com/a/476633/291937