কেন LN -s একটি একক যুক্তি গ্রহণ করে


27
> cd /tmp
> ln -s foo
> ls -alhF /tmp
lrwxrwxrwx 1 user user    3 Jul 29 14:00 foo -> foo

এটি কি কোনও বাগ রয়েছে lnবা কোনও ফাইলকে নিজের সাথে সিমলিংক করার জন্য কোনও ব্যবহারের কেস রয়েছে?

এই সঙ্গে coreutils 8.21-1ubuntu5.1

উত্তর:


45

এটি কোনও বাগ নয়। আপনি যখন একই ফাইলের সাথে একই বেসনামে কোনও ফাইলকে লিঙ্ক করতে চান তবে ব্যবহারের ক্ষেত্রেটি হ'ল:

cd /tmp
ln -s /etc/passwd
ls -l passwd
lrwxrwxrwx 1 xxx xxx 11 Jul 29 09:10 passwd -> /etc/passwd

এটি সত্য যে আপনি যখন একই ডিরেক্টরিতে থাকা কোনও ফাইল নাম দিয়ে এটি করেন তখন এটি নিজের সাথে একটি লিঙ্ক তৈরি করে যা পুরোপুরি ভাল করে না!

আপনি সিমলিংক বা হার্ড লিঙ্কগুলি ব্যবহার না করেই এটি কাজ করে।


15
এটি দেওয়ার আরও একটি উপায়: এর ln -s /path/to/fileজন্য সংক্ষিপ্ত ln -s /path/to/file .। মত lsসংক্ষিপ্ত ls .
স্টাফেন চেজেলাস

3
@ স্টাফেনচাজেলাস হ্যাঁ, এবং আপনি দুটি পুরো কীস্ট্রোক সংরক্ষণ করেছেন! :-)
সেলেদা

4
নোট করুন যে আচরণটি পসিক্স দ্বারা নির্দিষ্ট করা হয়নি তবে এটি ইউনিক্সের প্রথম সংস্করণে মোটামুটি সাধারণ বলে মনে হচ্ছে (জিএনইউ, ব্যস্তবক্স, ফ্রিবিএসডি, সোলারিস, আল্ট্রিক্স কমপক্ষে এবং ইতিমধ্যে এর মতো ছিল (যদিও এটি সমর্থিত নয়) 70 এর দশকের গোড়ার দিকে)।
স্টাফেন চেজেলাস

9

অবশ্যই এটির সন্ধানের সহজ উপায় হ'ল এটি চেষ্টা করে দেখতে। যখন কোনও ২ য় আর্গুমেন্ট দেওয়া হয় না, lnমূল ডিরেক্টরিতে একই নামের সাথে বর্তমান ডিরেক্টরিতে একটি লিঙ্ক তৈরি করবে:

$ ln -s /etc
$ ls -l
lrwxrwxrwx 1 terdon terdon         4 Jul 29 16:09 etc -> /etc

এটিতে এটিও ব্যাখ্যা করা হয়েছে man ln:

২ য় ফর্মটিতে বর্তমান ডিরেক্টরিতে TARGET- এ একটি লিঙ্ক তৈরি করুন।

"২ য় ফর্ম" বলতে বোঝায়:

ln [বিকল্প] ... টার্গেট (2 য় ফর্ম)

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