প্রথম সমস্যা:
আপনাকে উদ্ধৃত:
সৃষ্টি এবং মুছে ফেলা ঠিক কাজ করে। তবে আপডেটগুলি কাজ করে না। এই কমান্ডটি সম্পাদন করার পরে, এই সিমলিংকটি অবৈধ হয়ে যায়।
প্রদত্ত ডিরেক্টরি কাঠামো নিয়ে সমস্যা:
~ / স্ক্রিপ্ট / পরীক্ষা / ~ / স্ক্রিপ্ট / পরীক্ষা / রিমোট_লোক / ~ / স্ক্রিপ্ট / পরীক্ষা / রিমোট_লোক / সাইট 1 / ~ / স্ক্রিপ্ট / পরীক্ষা / রিমোট_লোক / সাইট 1 / স্টাফ 1 / টেস্ট / রেমোট_লোক / সাইট 2/stuff2.txt ~ / স্ক্রিপ্টস / পরীক্ষা / রিমোট_লোক / সাইট 2 / sc / স্ক্রিপ্টস / পরীক্ষা / রিমোট_লোক / সাইট 3 / স্টাফ 3.txt
এবং কমান্ডটি ব্যবহার করে:
ln -s /remote_loc/site1 test_link
এটি কি আপনার $ PWD, বা উপস্থিত ওয়ার্কিং ডিরেক্টরিতে একটি প্রতীকী লিঙ্ক তৈরি করে, যা / দূরবর্তী_লোক / সাইট 1 এ /, বা মূলের বাইরে থাকা কোনও অ-বিদ্যমান ফাইলকে নির্দেশ করে that
যদি আপনার পিডব্লিউডি ~ / স্ক্রিপ্টগুলিতে থাকে তবে আপনার এটি ব্যবহার করা উচিত ছিল:
ln -s remote_loc/site1 test_link
অন্যথায় আপনি সম্পূর্ণ পরম পথটি ব্যবহার করতে পারতেন:
ln -s /home/yourusername/remote_loc/site1 test_link
দ্বিতীয় সংখ্যা:
আপনাকে উদ্ধৃত:
আমি এখানে এবং সেখানে পড়েছি যে কোনও সিমলিংক আপডেট / ওভাররাইড করা সম্ভব নয়। তাই নেটে রয়েছে পরস্পরবিরোধী তথ্য। কে ঠিক আছে? যদি একটি সিমিলিংক আপডেট / ওভাররাইড করা যায় তবে আমি কীভাবে এটি অর্জন করতে পারি?
"কে সঠিক" আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনি ঠিক কী পড়েছেন বা কীভাবে বোঝা গেছে তা আমি নিশ্চিত নই। তবে, নিম্নলিখিতগুলি পরিষ্কার করতে সহায়তা করা উচিত:
- কি আপডেট করা যেতে পারে, এবং
- উপযুক্ত সুইচ ব্যবহার না করে কী আপডেট করা যায় না।
ডিরেক্টরি নয় এমন লক্ষ্যগুলি সহ প্রতীকী লিঙ্কগুলি আপডেট করা।
ln -sf:
-f বা --for বিদ্যমান গন্তব্য ফাইলগুলি সরান, এটি কোনও লিঙ্কের লক্ষ্য বা গন্তব্য আপডেট করতে ব্যবহৃত হয়।
উদাহরণ:
ln -sf /tmp/test /tmp/test.link; ls -go /tmp |grep test
-rw-r--r-- 1 0 Jun 8 17:19 test
lrwxrwxrwx 1 9 Jun 8 17:27 test.link -> /tmp/test
তবে, আপনি দেখতে পাচ্ছেন, নিখুঁত পাথগুলি ln
যুক্তিযুক্ত হয়ে থাকলে এটি পরম পথ দেয় । লিঙ্কের পিতামহিত ডিরেক্টরি থেকে বর্তমানের কার্যক্ষম ডিরেক্টরিটি পৃথক হলে একটি পূর্ণ পাথ দেওয়া প্রয়োজন।
আপেক্ষিক পথ:
ln -sfr:
-r বা - সম্পর্কিতটি লিঙ্কের অবস্থানের সাথে সম্পর্কিত প্রতীকী লিঙ্কগুলি তৈরি করে।
উদাহরণ:
ln -sfr /tmp/test /tmp/test.link ; ls -go /tmp| grep test
-rw-r--r-- 1 0 Jun 8 17:19 test
lrwxrwxrwx 1 4 Jun 8 17:27 test.link -> test
তবে, ডিরেক্টরিতে কোনও লিঙ্ক আপডেট করা লক্ষ্যবস্তু ডিরেক্টরি হলে কাজ করবে না।
উদাহরণ:
ln -sf /tmp/testdir /tmp/testdir.link ; ls -go /tmp |grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 7 Jun 8 17:47 testdir.link -> testdir
যেমন আপনি দেখতে পাচ্ছেন, ln
উপরে -r বিকল্পটি না দিয়ে উপরের যুক্তিতে নিখুঁত পাথের নামগুলি ব্যবহার করা সত্ত্বেও , প্রতীকী লিঙ্কটি এখনও লিঙ্কটির সাথে আপেক্ষিক।
ডিরেক্টরিতে লিঙ্কগুলি আপডেট করুন:
ln -sfrn:
-n বা --no-dereferences LINK_NAME কে একটি সাধারণ ফাইল হিসাবে বিবেচনা করে যদি এটি কোনও ডিরেক্টরিতে প্রতীকী লিঙ্ক হয়।
উদাহরণ:
ln -sfn /tmp/testdir /tmp/testdir.link; ls -go /tmp| grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 12 Jun 8 17:48 testdir.link -> /tmp/testdir
বিপরীতে যেমন:
ln -sfnr /tmp/testdir /tmp/testdir.link; ls -go /tmp| grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 7 Jun 8 17:48 testdir.link -> testdir
unlink
পরিবর্তে ব্যবহার করার পরামর্শ দিইrm
। আপনার সাথেunlink
কখনই ভুল স্যুইচ ব্যবহার করে কোনও উত্স ডিরেক্টরিতে কোনও ফাইল হারাতে ঝুঁকি থাকে না।