উত্তর:
একটি সিমিলিংক প্রকৃতপক্ষে আপনি যে পথটি দিয়েছেন তা স্ট্রিং¹ হিসাবে সংরক্ষণ করে stores তার মানে আপনার লিঙ্কটিতে ~/mylink
" .
" (একটি অক্ষর) রয়েছে। আপনি যখন লিঙ্কটি অ্যাক্সেস করেন, সেই লিঙ্কটি যেখানে আপনি লিঙ্কটি তৈরি করার সময় যেখানে ছিলেন তার চেয়ে লিংকটি যেখানে তার চেয়ে বেশি সম্পর্কিত।
পরিবর্তে, আপনি যে লিঙ্কটিতে চান তা প্রকৃত পাথ সংরক্ষণ করতে পারেন:
ln -s "$(pwd)" ~/mylink
কমান্ড প্রতিস্থাপন ব্যবহার করে ( কমান্ডpwd
ডিরেক্টরি নাম) আউটপুট আপনার কমান্ড লাইনে রাখুন। ln
পুরো পথটি দেখে এবং এটি আপনার সিমিলিংকে সংরক্ষণ করে, যা পরে সঠিক জায়গায় নির্দেশ করবে।
¹ কম বা কম
আপনার ব্যবহার করা উচিত:
ln -s "$(cd . && pwd)" ~/mylink
বা:
ln -s "$(pwd -P)" ~/mylink
বর্তমান ওয়ার্কিং ডিরেক্টরি জন্য সঠিক ফলাফল পেতে। আপনি যখন এই প্রশ্নের মতো কাজ করছেন তখন এটি পরিবর্তন করা যেতে পারে ।
$PWD
) পরিবর্তে (যে পথটি তিনি সেখানে $(pwd -P)
পৌঁছেছিলেন ) ব্যবহার করতে চায় । যদি $PWD
আর বর্তমান ডিরেক্টরিটিতে নির্দেশ না করে, তবে $(pwd -P)
পরের মিনিটে এমনটি বলার অপেক্ষা রাখে না।
"$PWD"
স্টাফেনচেজেলাস: বর্তমান নির্দেশিকা সরানো থাকলে আপনি এখনও পুরানো মান দেখতে পাচ্ছেন । PWD
কেবল তখনই সেট করুন যখন আপনি cd
বা শেলের সাহায্যে আরম্ভ করবেন।
cd
করতে নিশ্চিত করা হয় না PWD বা pwd এর আউটপুট বর্তমান ডিরেক্টরিতে একটি পাথ। আপনি এমন কিছু থেকে রক্ষা করার চেষ্টা করছেন যা সম্ভবত হওয়ার সম্ভাবনা নেই তবে প্রথম সমাধানে এটি কার্যকরভাবে কার্যকর নয় এবং দ্বিতীয়টিতে এটি আচরণ পরিবর্তন করছে।
mv
পর আপনাকে যা করতে ln
, তাহলে আপনি আপ একই পরিস্থিতি শেষ। অন্যদিকে, যদি সে করেনি cd /long/logical/path/to/some/directory
, তাই না বিন্দু লিঙ্ক চাও /vg0/lv1/user2/app4
লিঙ্ক হিসাবে (ক্যানোনিকাল পথ) যখন ভুল জায়গায় নির্দেশ করবে /long/logical/path/to/some/directory
অন্য কোথাও পয়েন্ট।
"$PWD"
POSIX শাঁস এবং~0
মধ্যেzsh
।