আমি যখন একটি সিমিলিংক দিয়ে সিডি করি, তখন পিডব্লুডি কেন আসল পথের পরিবর্তে সিমলিংকটি দেখায়?


19

আমি ln -s 1 2ডিরেক্টরিটির ভিতরে থাকা একটি ডিরেক্টরিতে একটি সফট লিঙ্ক ( ) তৈরি করেছি testএবং সফট লিঙ্কটি খুললাম ( cd 2) এবং ব্যবহার করে বর্তমান পথটি প্রদর্শন করেছি pwd। প্রদর্শিত পথ ছিল ~/test/2এবং না ~/test/1

এটি উইন্ডোজের মতো কোনও ওএসে আলাদা, শর্টকাট আমাদের আসল ডিরেক্টরিতে নিয়ে আসে। লিনাক্সে এই সফট লিঙ্কটি কীভাবে কাজ করে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি। এটি কি মত শর্টকাট নয় Windows? পথটা কেন হয় না ~/test/1?

 $ mkdir test
 $ cd test
 $ mkdir 1
 $ ln -s 1 2
 $ cd 2
 $ pwd
 /home/dazz/test/2

2
স্ক্রিনশট অপসারণ করার জন্য ধন্যবাদ। পরের বার, মুছে ফেলা এবং পুনরায় পোস্ট করার পরিবর্তে আপনার প্রশ্নটি সম্পাদনা করুন। আপনার নিজের প্রশ্নগুলির অনেকগুলি মুছে ফেলা আপনাকে জিজ্ঞাসা থেকে নিষিদ্ধ করতে পারে। এই নিষেধাজ্ঞাগুলি স্বয়ংক্রিয় তাই আমরা এ সম্পর্কে তেমন কিছু করতে পারব না। যাই হোক না কেন, সম্পাদনা প্রশ্নটি বাধা দেওয়ায় আপনার পুনরায় পোস্ট করার দরকার নেই ।
terdon

দু'বার জিজ্ঞাসা করছ কেন? Askubuntu.com/q/610133/367165
এবি

এবি ফোরামের একই ফোরাম?
ডিএসক্রিপ্ট

উত্তর:


18

এটি শেলের একটি বৈশিষ্ট্য যা মনে করে যে আপনি কোথায় ছিলেন কীভাবে।
আপনি যদি realpathইনস্টল করে থাকেন তবে আপনি এটি করতে পারেন:

$ realpath 
/home/dazz/test/1

অভাব আছে যদি আপনার অজগর থাকে:

$ python -c "import os; print(os.path.realpath('.'))"
/home/dazz/test/1

বা রিডলিংক (কোর্টিল থেকে):

$ readlink -f .
/home/dazz/test/1

বা /bin/pwd(শেলটি অন্তর্নির্মিত নয় pwd):

$ /bin/pwd
/home/dazz/test/1

ls -l /proc/$$/cwdকার্নেলের /procফাইল সিস্টেম ইন্টারফেসের সুবিধা গ্রহণ করে ।
ব্রুস এডিগার

8
pwd -Pবর্তমান ডিরেক্টরিতে যুক্তির পরিবর্তে লজিকাল পরিবর্তে দৈহিক মুদ্রণের জন্যও নোট করুন ।
গডলিজিক

8

বিপরীতে pwdএবং /bin/pwd

pwd, যা অনেকগুলি শেলের একটি অন্তর্নির্মিত কমান্ড, আপনাকে জানায় যে আপনার শেলটি আপনি কোথায় আছেন বলে মনে করে (এবং সেজন্য প্রতীকগুলি "নরম লিঙ্কগুলি" ব্যবহার করে যেন তারা আসল ডিরেক্টরি হয়।

/bin/pwdএকটি বাহ্যিক প্রোগ্রাম যা আপনাকে জানায় যে আপনি সত্যই কোথায় আছেন, যদি প্রয়োজন হয় তবে ফাইল সিস্টেমের গাছটিকে ট্র্যাভার করে /। এটি সিমলিংকের কোনও অ্যাকাউন্ট নেয় না কারণ উপরের দিকে পাড়ি দেওয়ার সময় সেগুলির অস্তিত্ব নেই..


6

অন্যান্য উত্তরগুলি /bin/pwdশেলের তুলনায় কভার করেছে builtin pwd

আপনি উল্লিখিত উইন্ডোজ স্টাইলে যদি সিমলিংকগুলি অনুসরণ করতে চান তবে ব্যবহার করুন cd -P: এটি পিডব্লুডি ভেরিয়েবলটি পরিবর্তন করবে change

আপনি যদি -Pডিফল্টরূপে ব্যবহার করতে চান তবে আপনি এই লাইনটি আপনার .bashrcবা .zshrc:

set -P

অন্যান্য শাঁস বিভিন্ন হতে পারে।

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