বর্তমান ডিরেক্টরিতে একটি নিখুঁত প্রতীকী লিঙ্ক তৈরি করুন


12

আমি এখন খুব দীর্ঘ পথ সহ একটি ডিরেক্টরিতে আছি। ভবিষ্যতে এটির দ্রুত দেখার জন্য, আমি এটির একটি লিঙ্ক তৈরি করতে চাই।

আমি চেষ্টা করেছিলাম

ln -s . ~/mylink

~/mylinkআসলে লিঙ্ক ~। তাহলে আমি ~কী অস্পষ্ট পথের নামটি প্রসারিত করতে পারি এবং তারপরে এটি দিতে পারি ln?

উত্তর:


19

একটি সিমিলিংক প্রকৃতপক্ষে আপনি যে পথটি দিয়েছেন তা স্ট্রিং¹ হিসাবে সংরক্ষণ করে stores তার মানে আপনার লিঙ্কটিতে ~/mylink" ." (একটি অক্ষর) রয়েছে। আপনি যখন লিঙ্কটি অ্যাক্সেস করেন, সেই লিঙ্কটি যেখানে আপনি লিঙ্কটি তৈরি করার সময় যেখানে ছিলেন তার চেয়ে লিংকটি যেখানে তার চেয়ে বেশি সম্পর্কিত।

পরিবর্তে, আপনি যে লিঙ্কটিতে চান তা প্রকৃত পাথ সংরক্ষণ করতে পারেন:

ln -s "$(pwd)" ~/mylink

কমান্ড প্রতিস্থাপন ব্যবহার করে ( কমান্ডpwd ডিরেক্টরি নাম) আউটপুট আপনার কমান্ড লাইনে রাখুন। lnপুরো পথটি দেখে এবং এটি আপনার সিমিলিংকে সংরক্ষণ করে, যা পরে সঠিক জায়গায় নির্দেশ করবে।

¹ কম বা কম


2
আরও দেখুন "$PWD"POSIX শাঁস এবং ~0মধ্যে zsh
স্টাফেন চেজেলাস

7

আপনার ব্যবহার করা উচিত:

ln -s "$(cd . && pwd)" ~/mylink

বা:

ln -s "$(pwd -P)" ~/mylink

বর্তমান ওয়ার্কিং ডিরেক্টরি জন্য সঠিক ফলাফল পেতে। আপনি যখন এই প্রশ্নের মতো কাজ করছেন তখন এটি পরিবর্তন করা যেতে পারে ।


1
প্রথমটি অগত্যা সমস্ত শেলগুলিতে সহায়তা করবে না ( এই উত্তরটি দেখুন )। ওপি সম্ভবত (বর্তমান ডিরেক্টরিটিতে ক্যানোনিকাল পাথ $PWD) পরিবর্তে (যে পথটি তিনি সেখানে $(pwd -P)পৌঁছেছিলেন ) ব্যবহার করতে চায় । যদি $PWDআর বর্তমান ডিরেক্টরিটিতে নির্দেশ না করে, তবে $(pwd -P)পরের মিনিটে এমনটি বলার অপেক্ষা রাখে না।
স্টাফেন চেজেলাস


@ "$PWD"স্টাফেনচেজেলাস: বর্তমান নির্দেশিকা সরানো থাকলে আপনি এখনও পুরানো মান দেখতে পাচ্ছেন । PWDকেবল তখনই সেট করুন যখন আপনি cdবা শেলের সাহায্যে আরম্ভ করবেন।
cuonglm

কিন্তু আমি বলছি যে ওপি সাম্প্রতিক কাজ করা কিছু সুনির্দিষ্ট পাথ তুলনায় পুরাতন $ গণপূর্ত চান সম্ভাবনা এবং যে কয়েকটি শেল (ksh93, ছাই, যশ) এ হল, যেমন ব্যাখ্যা করেছেন সেখানে কলিং cdকরতে নিশ্চিত করা হয় না PWD বা pwd এর আউটপুট বর্তমান ডিরেক্টরিতে একটি পাথ। আপনি এমন কিছু থেকে রক্ষা করার চেষ্টা করছেন যা সম্ভবত হওয়ার সম্ভাবনা নেই তবে প্রথম সমাধানে এটি কার্যকরভাবে কার্যকর নয় এবং দ্বিতীয়টিতে এটি আচরণ পরিবর্তন করছে।
স্টাফেন চেজেলাস

1
কেউ হলে mv পর আপনাকে যা করতে ln, তাহলে আপনি আপ একই পরিস্থিতি শেষ। অন্যদিকে, যদি সে করেনি cd /long/logical/path/to/some/directory, তাই না বিন্দু লিঙ্ক চাও /vg0/lv1/user2/app4লিঙ্ক হিসাবে (ক্যানোনিকাল পথ) যখন ভুল জায়গায় নির্দেশ করবে /long/logical/path/to/some/directoryঅন্য কোথাও পয়েন্ট।
স্টাফেন চেজেলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.