Pwd এবং d PWD এর মধ্যে ব্যবহারের পার্থক্য


9

বর্তমান / বর্তমান ওয়ার্কিং ডিরেক্টরি মুদ্রণ করতে পরিবেশের পরিবর্তনশীল $PWD এবং কমান্ড pwd উপলব্ধ। সুতরাং, উভয় ব্যবহারের মধ্যে পার্থক্য কি? বা নির্দিষ্ট উদ্দেশ্যে কী বেছে নেওয়া উচিত?

উত্তর:


10

এটি আপনি যা করছেন তার উপর নির্ভর করে। প্রথমত, $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


একটি পার্থক্য হ'ল available পিডব্লিউডি যখন পাওয়া যায় তখন ব্যবহার করা ইকো বা পিডাব্লুডির মতো সাবকোমন্ডে কাঁটাচামচ করা এড়াতে পারে। এটি কার্য সম্পাদন এবং প্রোগ্রাম ট্রেসিংয়ের জন্য এটি সুবিধাজনক করে তোলে।
জো এটজবার্গার

3

উভয়ই একই ফলাফল ফেরত দেবে যদি আপনি প্রতীকী লিঙ্কগুলিতে থাকা সহ সমস্ত কার্যকারী ডিরেক্টরিগুলির বিকল্প ব্যতীত তাদের ব্যবহার করেন।

তবে, থেকে 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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.