Jadi Wikipedia ( tautan ) memberi tahu saya bahwa perintah tersebut pwd
adalah kependekan dari "print working directory", dan itu masuk akal.
Tetapi untuk variabel lingkungan, "P" harus menjadi akronim untuk sesuatu selain cetak.
Saya mendengar orang berbicara tentang "direktori kerja saat ini", yang terdengar lebih baik dan lebih intuitif, tetapi masih variabel lingkungan tampaknya disebut $ PWD, dan bukan $ CWD. Tidak ada yang pernah mengatakan "Apakah Anda memeriksa variabel direktori kerja cetak?".
Saat ini saya bermain-main dengan server aplikasi web uWSGI, dan ketika menjalankannya memberitahu saya (di halaman statistik uWSGI):
"cwd":"/home/velle/greendrinks",
jadi mereka jelas suka (akronim lebih intuitif) cwd
lebih pwd
.
Saya kira saya mencoba mencari tahu apakah saya salah mengerti sesuatu, atau apakah itu hanya masalah memberikan variabel lingkungan nama yang tidak intuitif?
sumber
$PWD
setara dengan`pwd`
, dan itu cukup pembenaran.Jawaban:
Itu tergantung pada apa yang Anda lakukan. Pertama-tama,
$PWD
adalah variabel lingkungan danpwd
merupakan shell builtin atau biner aktual:Sekarang, bash builtin hanya akan mencetak nilai saat ini
$PWD
kecuali Anda menggunakan-P
bendera. Sebagaimana dijelaskan dalamhelp pwd
:The
pwd
biner, di sisi lain, mendapat direktori saat ini melaluigetcwd(3)
system call yang mengembalikan nilai yang sama sepertireadlink -f /proc/self/cwd
. Untuk mengilustrasikan, coba pindah ke direktori yang merupakan tautan ke yang lain:Jadi, sebagai kesimpulan, pada sistem GNU (seperti Ubuntu),
pwd
danecho $PWD
sama kecuali Anda menggunakan-P
opsi, tetapi/bin/pwd
berbeda dan berperilaku sepertipwd -P
.Sumber /ubuntu//a/476633/291937
sumber
PWD
menjadi variabel lingkungan. Ini sebenarnya adalah kasus default dengan kebanyakan jika tidak semua shell dan itu masuk akal untuk memberikannya kepada proses anak-anak.$PWD
danpwd
(yang telah dibahas pada U&L sebelum saya percaya), tetapi tentang alasan yang menyebabkan penamaan variabel "PWD
".ksh88
dokumen mana itu sebagai:PWD The present working directory set by the cd command.
Anda harus menambahkan ini ke balasan Anda.$ PWD adalah P athname arus W Mengurai D irectory
Ketika ada tautan simbolis bisa jadi hasil yang berbeda dari membaca $ PWD hingga mengeksekusi perintah pwd .
sumber
$PWD
danpwd
?