প্রতীকী লিঙ্ক অনুসরণ করার পরে 'সিডি ..' কার্যকারিতা পুনরুদ্ধার করুন


13

যদি আমি টার্মিনালে একটি প্রতীকী লিঙ্ক তৈরি করি যেমন একটি কমান্ড দিয়ে

ln -s /path/to/some/directory symbolicLink

এবং তারপরে লিঙ্কটি অনুসরণ করুন

cd symbolicLink

টার্মিনালটি মনে হয় যে সিডাব্লুডিটি প্রদর্শিত হচ্ছে ~/symbolicLink/যদিও এটি প্রদর্শিত হচ্ছে ~/path/to/some/directory/(ধরে নিই যে লিঙ্কটি ~অবশ্যই তৈরি করা হয়েছিল )। এর অর্থ হ'ল আমি যদি তখন টাইপ cd ..করি তবে আমাকে আবার নিয়ে যাওয়া হবে ~, কারণ টার্মিনালটি 'চিন্তিত' এটি সিডব্লিউডির পিতামাতা।

আমার কী এমন পরিবর্তনের দরকার cd ..যা পরিবর্তে আমাকে ~/path/to/some/, অর্থাৎ প্রকৃত পিতামাতার কাছে নিয়ে যাবে ~/path/to/some/directory/?

উত্তর:


15

Https://stackoverflow.com/questions/10456784/behavior-of-cd-bash-on-symbolic-links দেখুন ।

"আসল" প্যারেন্ট ডিরেক্টরিতে যেতে আপনি 'সিডি-পি' ব্যবহার করতে পারেন। এটি কীভাবে এটির ডিফল্ট আচরণ করা যায় তার উপরের উত্তরের প্রথম মন্তব্য দেখুন।


5

cd -Pআচরণে একটি সূক্ষ্ম সতর্কতা রয়েছে (দৈর্ঘ্যের কারণে উত্তর হিসাবে পোস্ট করা):

$ dir1=$(mktemp --directory)
$ dir2=$(mktemp --directory)
$ ln -s -- "$dir1" /tmp/start
$ ln -s -- "$dir2" "$dir1"
$ cd "/tmp/start/"*
$ cd -P ..

pwdএখন কি মুদ্রণ করা উচিত ? যৌক্তিকভাবে, এটিও হতে পারে

  1. $dir1যদি cd -P ..করে cd ..প্রথম ও cd -- "$(readlink -f)"পরে, অথবা
  2. /tmpযদি cd -P ..করে cd -- "$(readlink -f)"প্রথম ও cd ..পরে।

প্রকৃতপক্ষে এটি পরেরটি করে, যার অর্থ "প্যারেন্ট" ডিরেক্টরি থেকে pwdস্বজ্ঞাতভাবে দুটি স্তর বেশি।


1
ধন্যবাদ! cd -Pএখনও আমি যে সমস্যার মুখোমুখি ছিলাম তা এখনও সমাধান করে, তবে এটি এখনও দরকারী।
Val,


2

আমি আপনার ব্যথা অনুভব করি bashthis এই আচরণের কারণে আমি ইন্টারেক্টিভ ব্যবহারের জন্য মূলত ভাঙ্গা বলে মনে করি ।

tcshইন্টারেক্টিভ ব্যবহারের জন্য অনেক বেশি ব্যবহারকারী-বান্ধব শেল। bashপ্রোগ্রামিংয়ের জন্য ছেড়ে দিন (অনেকগুলি স্ক্রিপ্টিং ভাষার মধ্যে আরও ভাল বিকল্প থাকা অবস্থায় আপনি যদি শেল স্ক্রিপ্টগুলি লেখার জন্য জোর দিয়ে থাকেন)।

যে কোনও ব্যবহারকারীর জন্য শেল পরিবর্তন করতে, chshকমান্ড লাইনে টাইপ করুন এবং প্রম্পটগুলি অনুসরণ করুন (আবার, আমি সুপারিশ করি /bin/tcshএবং csh এবং tcsh ব্যবহার করে চমৎকার ও'রিলি বই ব্যবহার করি না , এর জন্য ব্যবহার না করে)।


যেহেতু আমি এই উত্তরটি লিখেছি, আমি উদ্বেগ বন্ধ করতে এবং ইন্টারেস্টিক ব্যবহারের জন্য বাশকে ভালবাসতে শিখেছি। তবে আমি এখনও cdসিমলিংকের জন্য ডিফল্ট আচরণের সাথে ডিল করতে পারি না । set -o physicalআমার .bashrcবা .bash_profileআমার ব্যবহৃত প্রতিটি মেশিনের জন্য আমাকে মনে রাখতে হবে।
ডডজেস্টেসাম্রোলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.