পুরো পাথটি টাইপ না করেই বর্তমান ফোল্ডারে নিখুঁত পথ হিসাবে সিমলিংক করুন


10

সিমলিংকগুলি আপেক্ষিক পাথের জন্য শর্টকাটগুলি সংরক্ষণ করা হয়:

~/foo ln -s . ~/bar/foo
~/foo ls -l ~/bar
total 8
lrwxr-xr-x    1 me  me     1B 15 May 14:38 foo -> .

ফাইলটি ~/bar/fooহ'ল barবর্তমান ডিরেক্টরিতে সিলেমিংক , অর্থাৎ নিজেই

আমি যদি সেই সময়ে যে ডিরেক্টরিটিতে থাকি তখন অন্য ডিরেক্টরিতে একটি সিমলিংক তৈরি করতে চাইলে কী হবে? সুতরাং উপরের উদাহরণে, আমি আছি ~/fooএবং আমি এতে ~/bar/fooএকটি সিমিলিংক তৈরি করতে চাই ~/foo। অবশ্যই আমার বর্তমান ডিরেক্টরিটি 5 টি অক্ষরের চেয়ে কিছুটা দীর্ঘ হতে পারে এবং টাইপ করা এত সহজ নাও হতে পারে।

উত্তর:


13

আমি টাইপ বলতে হবে

ln -s $PWD ~/bar/

অথবা

ln -s `pwd` ~/bar/

আপনি এটি ব্যবহার করতে পারে

ln -s $PWD ~/bar/

তবে আমার ধারণা আপনি এটি জানতেন এবং আপনি যা দেখছেন তা তা নয়। সুতরাং দয়া করে আপনার প্রশ্নটি আপডেট করতে পারলে আপনার লক্ষ্যটি কী?

যদি পাথটিতে ফাঁকা স্থান থাকে, তবে এটি ব্যবহার করার পরামর্শ দেওয়া হবে:

ln -s "$PWD" ~/bar/

2
আপনার $ভেরিয়েবলগুলি এবং কমান্ড বিকল্পগুলি ডাবল-কোট করুন , অন্যথায় স্পেস সহ ফাইলের নামগুলি রান আপকে উপভোগ করবে। আপনারও শেষের প্রয়োজন নেই $(basename $PWD)(এবং আপনি একটি $(এবং উদ্ধৃতি :-)) ভুলে গেছেন ) যেহেতু এটি কোনওভাবেই ডিফল্ট লিঙ্কটির নাম।
ড্যানিয়েল অ্যান্ডারসন

আমার মনে হয় আমি বোকা হয়ে যাচ্ছিলাম। আমি ভেবেছিলাম আমি pwdপদ্ধতির চেষ্টা করেছি এবং কিছু ভুল হয়েছে। আসুন এটি আইডি-টেন-টি ত্রুটিতে নামিয়ে দেওয়া যাক
গ্যারেথ

@ ড্যানিয়েল অ্যান্ডারসন আপনি ঠিক বলেছেন যে এটি কোনও জায়গাগুলিকে সমর্থন করে না। ভাল যুক্তি. তাই রেকর্ডের জন্য আমি উত্তরটি আপডেট করব :)
হিউজেনস

4

একেবারে:

ln -s "$(readlink -f .)" ~/bar

(স্ক্রিপ্টগুলিতে সাধারণতার পক্ষে ভাল) বা কেবল just

ln -s ~/foo ~/bar

তুলনামূলকভাবে:

ln -s ../foo ~/bar

ট্যাব সমাপ্তি আপনাকে টাইপ করতে সহায়তা করবে।


মহাকর্ষ মন্তব্য এবং http://lists.gnu.org/archive/html/coreutils-announce/2012-03/msg00000.html থেকে :

* 8.16 (2012-03-26) রিলিজের উল্লেখযোগ্য পরিবর্তনগুলি [স্থিতিশীল]

...

ln--relativeলক্ষ্যটি কীভাবে নির্ধারিত হয় তা নির্বিশেষে একটি লক্ষের সাথে সম্পর্কিত প্রতীকী লিঙ্ক তৈরি করতে এখন বিকল্পটি গ্রহণ করে ।

সুতরাং এই সংস্করণ সহ:

ln -s --relative . ~/bar

কাজ করা উচিত (অনুশীলনের সাথে --relativeস্যুইচটি সংযোজন সহ আপনার প্রথম উদাহরণটি অভিন্ন )।


4
সর্বশেষ coreutils স্বয়ংক্রিয়ভাবে ব্যবহার আপেক্ষিক symlinks তৈরি করতে পারেন ln -s -r foo ~/bar
user1686

@ গ্রাভিটি: আকর্ষণীয় ing এখনও আমার সিস্টেমে নেই, দৃশ্যত (দেবিয়ান সিড)।
ড্যানিয়েল অ্যান্ডারসন

গিট অনুসারে এটি 22 মার্চ v8.16 এর জন্য যুক্ত হয়েছে বলে মনে হয়।
user1686

1
এছাড়াও, $(readlink -f .)ওভার সুবিধা কি $PWD?
user1686

2
@ গ্রাভিটি: খুব বেশি নয়। বর্তমানের ডিরেক্টরি ডিরেক্টরি কোনও লিঙ্কে পৌঁছে গেলে তারা ভিন্নভাবে কাজ করে। readlink -fএরপরে বর্তমান ডিরেক্টরিটির পরম টার্গেট পাথের সাথে $PWDসিমলিংক হবে , যখন বর্তমানে থাকা আক্ষরিক ডিরেক্টরিতে এটি সিমলিংক হবে What যা চেয়েছিল তা সম্ভবত সময়ে সময়ে ভিন্ন, এবং প্রথম এবং সর্বাগ্রে সম্ভবত কোনও সমস্যা নয়।
ড্যানিয়েল অ্যান্ডারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.