যেটি কাজ করে না তার জন্য, আমরা যদি ls -l
ফলাফলটি দেখি তবে আমরা নিম্নলিখিতটি পাই:
[sparticvs@sparta test]$ ls -l build/
total 0
lrwxrwxrwx. 1 sparticvs sparticvs 6 Dec 17 16:08 client -> client
এখন এখানে কী চলছে তা বোঝার জন্য। আপনি যে আদেশটি বলেছেন সেটির দিকে নজর দিন:
ln -s client build/client
ম্যান পেজ অনুসারে, এই ফর্ম্যাটটির জন্য দুটি সম্ভাব্য ম্যাচ রয়েছে
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
এটি প্রথম ফর্মের সাথে মিলবে (প্রথম থেকেই)। এখন, "টার্গেটের নাম" বা client
আপনার ক্ষেত্রে, ln
নির্বিচারে স্ট্রিং হতে পারে (সম্পূর্ণ ম্যানুয়াল অনুসারে )। তাদের এখনই কোনও কিছুর সমাধান করতে হবে না, তবে ভবিষ্যতে কোনও কিছুর সমাধান করতে পারে। আপনার অনুরোধের মাধ্যমে আপনি যা তৈরি করছেন তা হ'ল "ড্যাংলিং সিমলিংক" এবং সিস্টেম আপনাকে এগুলি তৈরি করা থেকে বিরত রাখে না।
এখন আপনার দ্বিতীয় অনুরোধটিকে ln -s ../client build/client
"আপেক্ষিক সিমিলিংক" বলা হয় (যেমন আপনি নিজের পোস্টে উল্লেখ করেছেন)। দ্বিতীয় ধরণের রয়েছে এবং এটি হ'ল "পরম সিমিলিং" যা কল করে ডাকা হবে ln -s /home/user/client build/client
।
এই না একটি বাগ। ম্যানুয়াল অনুসারে এতে বলা হয়েছে:
বর্তমান ডিরেক্টরি থেকে পৃথক স্থানে সম্পর্কিত আপেক্ষিক সিমিলিংক তৈরি করার সময়, সিমলিংকের রেজোলিউশন বর্তমান ডিরেক্টরি থেকে একই স্ট্রিংয়ের রেজোলিউশনের চেয়ে আলাদা হবে। অতএব, অনেক ব্যবহারকারী প্রথমে সেই জায়গায় ডিরেক্টরি পরিবর্তন করতে পছন্দ করেন যেখানে আপেক্ষিক সিমলিংক তৈরি হবে, যাতে ট্যাব-সমাপ্তি বা অন্যান্য ফাইল রেজোলিউশন একই লক্ষ্য খুঁজে পায় যে সিমলিংকে কী স্থাপন করা হবে।
- থেকে info coreutils 'ln invocation'
তাই বলা হয়, আপনি হবে টার্গেটের পারেন আপেক্ষিক বা পথটি ব্যবহার করুন।