readlink
পরম পথ অর্জনের জন্য বাশ স্ট্যান্ডার্ড। পাথ বা কোনও পথ উপস্থিত না থাকলে খালি স্ট্রিংগুলি ফিরিয়ে আনার সুবিধাও রয়েছে (পতাকাগুলি দেওয়াতে দেওয়া হয়েছে)।
যে ডিরেক্টরি থাকতে পারে বা নাও থাকতে পারে এমন কোনও ডিরেক্টরিতে পরম পাথ পেতে, তবে কার পিতামাতার অস্তিত্ব রয়েছে, তা ব্যবহার করুন:
abspath=$(readlink -f $path)
যে ডিরেক্টরিতে সমস্ত পিতামাতার সাথে অবশ্যই বিদ্যমান থাকতে হবে তার নিখুঁত পথ পেতে:
abspath=$(readlink -e $path)
প্রদত্ত পাথটিকে আধ্যাত্মিককরণ করতে এবং সিমলিংকগুলির উপস্থিতি ঘটে যদি তা অনুসরণ করে তবে অন্যথায় অনুপস্থিত ডিরেক্টরিগুলি উপেক্ষা করুন এবং যেভাবেই হোক পথটি ফিরিয়ে দিন, এটি হ'ল:
abspath=$(readlink -m $path)
কেবলমাত্র খারাপ দিকটি হ'ল রিডলিঙ্কগুলি লিঙ্কগুলি অনুসরণ করবে। আপনি যদি লিঙ্কগুলি অনুসরণ করতে না চান তবে আপনি এই বিকল্প কনভেনশনটি ব্যবহার করতে পারেন:
abspath=$(cd ${path%/*} && echo $PWD/${path##*/})
এটি $ পাথের ডিরেক্টরি অংশে chdir হবে এবং directory পাথের ফাইল অংশের সাথে বর্তমান ডিরেক্টরিটি প্রিন্ট করবে। এটি chdir ব্যর্থ হলে, আপনি একটি খালি স্ট্রিং এবং স্টাডার উপর একটি ত্রুটি পাবেন।
/foo/bar
বা এমনকি/foo
আসলে অস্তিত্ব, অথবা আপনি শুধুমাত্র পথ নাম নিয়ম অনুযায়ী স্ট্রিং ম্যানিপুলেশন দৃষ্টিভঙ্গি আগ্রহী?