উত্তর:
এটি আপনি যা করছেন তার উপর নির্ভর করে। প্রথমত, $PWDএকটি পরিবেশ পরিবর্তনশীল এবং pwdএটি একটি শেল বিল্টিন বা প্রকৃত বাইনারি:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
এখন, ব্যাশ বিল্টিনটি কেবলমাত্র বর্তমান মানটি মুদ্রণ করবে $PWDযতক্ষণ না আপনি -Pপতাকা ব্যবহার করেন । হিসাবে ব্যাখ্যা করা হয়েছে help pwd:
pwd: pwd [-LP]
Print the name of the current working directory.
Options:
-L print the value of $PWD if it names the current working
directory
-P print the physical directory, without any symbolic links
By default, `pwd' behaves as if `-L' were specified.
pwdবাইনারি, অপরপক্ষে, মাধ্যমে বর্তমান ডিরেক্টরির পায় getcwd(3)সিস্টেম কল যা একই মান readlink -f /proc/self/cwd। উদাহরণস্বরূপ, এমন ডিরেক্টরিতে যাওয়ার চেষ্টা করুন যা অন্যটির লিঙ্ক:
$ 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
সুতরাং, উপসংহারে, জিএনইউ সিস্টেমে (যেমন উবুন্টু), pwdএবং echo $PWDসমতুল্য না হয় যদি না আপনি -Pবিকল্পটি ব্যবহার করেন তবে /bin/pwdভিন্ন হয় এবং তার মতো আচরণ করে না pwd -P।
উভয়ই একই ফলাফল ফেরত দেবে যদি আপনি প্রতীকী লিঙ্কগুলিতে থাকা সহ সমস্ত কার্যকারী ডিরেক্টরিগুলির বিকল্প ব্যতীত তাদের ব্যবহার করেন।
তবে, থেকে man pwd:
-P, --physical
avoid all symlinks
এর অর্থ pwd -Pনির্ধারিত হবে যখন প্রতীকী লিঙ্কগুলিতে কিছু অন্যান্য ডিরেক্টরি নির্দেশ করে মূল ডিরেক্টরিতে পাথ প্রিন্ট করবে।
উদাহরণস্বরূপ, আপনার যদি একটি প্রতীকী লিঙ্ক থাকে /var/runযা নির্দেশ করে /runএবং আপনি বর্তমানে /var/run/ডিরেক্টরিতে রয়েছেন , কার্যকর করছেন
echo $PWD
ফিরে আসবে:
/var/run
এবং একই হবে pwd। তবে, যদি আপনি কার্যকর করেন:
pwd -P
ফিরে আসবে
/run
সুতরাং, এটি নির্ভর করে যে আপনার কোন পথে প্রয়োজন: প্রতীকী লিঙ্কগুলি না থাকলে বা বর্তমান ডিরেক্টরিটি প্রতীকী লিঙ্কগুলি উপেক্ষা করে প্রকৃত পথ। মধ্যে প্রতীকী লিঙ্ক রয়েছে pwd -Pএবং এর মধ্যে কেবলমাত্র পার্থক্য echo $PWD।