আফাইক, না, আপনি পারবেন না। আপনাকে এটিকে সরিয়ে পুনরায় তৈরি করতে হবে। প্রকৃতপক্ষে, আপনি একটি সিমিলিংকে ওভাররাইট করতে পারেন এবং এভাবে নির্দেশিত পথের নামটি আপডেট করতে পারেন:
$ ln -s .bashrc test
$ ls -al test
lrwxrwxrwx 1 pascal pascal 7 2009-09-23 17:12 test -> .bashrc
$ ln -s .profile test
ln: creating symbolic link `test': File exists
$ ln -s -f .profile test
$ ls -al test
lrwxrwxrwx 1 pascal pascal 8 2009-09-23 17:12 test -> .profile
সম্পাদনা : ওপি যেমন একটি মন্তব্যে উল্লেখ করেছে, --force
বিকল্পটি ব্যবহার করে আগে ln
একটি সিস্টেম কল করা হবে । নীচে, আমার লিনাক্স বাক্সের আউটপুট এটি প্রমাণ করছে:unlink()
symlink()
strace
$ strace -o /tmp/output.txt ln -s -f .bash_aliases test
$ grep -C3 ^unlink /tmp/output.txt
lstat64("test", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
stat64(".bash_aliases", {st_mode=S_IFREG|0644, st_size=2043, ...}) = 0
symlink(".bash_aliases", "test") = -1 EEXIST (File exists)
unlink("test") = 0
symlink(".bash_aliases", "test") = 0
close(0) = 0
close(1) = 0
সুতরাং আমি অনুমান করি চূড়ান্ত উত্তরটি "না"।
সম্পাদনা : নিম্নলিখিতটি আর্টিক বেনডিকেনের উত্তর থেকে অনিক্স.সটাকেক্সচেঞ্জ.কম, সার্কা 2016- এ অনুলিপি করা হয়েছে ।
এই করতে প্রকৃতপক্ষে সঙ্গে atomically সম্পন্ন করা rename(2)
, প্রথম একটি অস্থায়ী নামে নতুন সিমবলিক লিঙ্ক তৈরি এবং তারপর পরিচ্ছন্নভাবে এক বারেই পুরাতন সিমবলিক লিঙ্ক মুছে যাওয়ার দ্বারা। হিসাবে man পৃষ্ঠা পদ বলে:
নতুনপথ যদি প্রতীকী লিঙ্ককে বোঝায় তবে লিঙ্কটি ওভাররাইট করা হবে।
শেলটিতে আপনি নীচের সাথে এটি করবেন mv -T
:
$ mkdir a b
$ ln -s a z
$ ln -s b z.new
$ mv -T z.new z
strace
এটি যে সত্যই rename(2)
হুডের নীচে ব্যবহার করছে তা নিশ্চিত করার জন্য আপনি শেষ কমান্ডটি করতে পারেন :
$ strace mv -T z.new z
lstat64("z.new", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0
lstat64("z", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0
rename("z.new", "z") = 0
নোট করুন যে উপরেরটিতে mv -T
এবং উভয়ই strace
লিনাক্স-নির্দিষ্ট।
ফ্রিবিএসডি-তে, mv -h
পর্যায়ক্রমে ব্যবহার করুন ।
সম্পাদকের দ্রষ্টব্য: ক্যাপিস্ট্রানো এইভাবে বছরের পর বছর ধরে এটি করেছে, এখন থেকে ~ 2.15। দেখুন এই টান অনুরোধ ।
ln
পুরানো লিঙ্কটি ওভাররাইট করে কেবল কমান্ডটি (বা এপিআই সমীকরণ) জারি করবেন না কেন ? আপনার কি সমস্যা হচ্ছে?