प्रतीकात्मक लिंक का गंतव्य नहीं बदल सकता


21

मैं लिंक या पुराने गंतव्य को हटाए बिना मौजूदा प्रतीकात्मक लिंक के गंतव्य को बदलना चाहता हूं।

मैंने पहले इस तरह एक निर्देशिका के लिए एक प्रतीकात्मक लिंक बनाया है:

$ cd /usr/lib/jvm/

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07

$ sudo ln -s jdk1.7.0_04 oracle-jdk-7

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

अब मैं इसे बदलना चाहता हूँ, अन्य निर्देशिका से जोड़ने के लिए:

$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7

लेकिन यह बिना किसी त्रुटि के काम नहीं करता है:

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:36  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

कोई मदद ?


शायद यह एक छोटा सा विवरण है, लेकिन यह वास्तविक कमांड जैसा दिखता है, जिसे आपने चलाया है sudo ln -s jdk1.7.0_04/ oracle-jdk-7। नोट के बाद स्लेश करें 04
वेजेंड्रिया

जवाबों:


31

किसी निर्देशिका के लिए एक प्रतीकात्मक लिंक बनाने के लिए, 'n' विकल्प का उपयोग करें:

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY लिंक लक्ष्य का नाम है;
  • LINK_NAME लिंक का नाम है।
  • fविकल्प (यानी, पहले उसे हटा नहीं) मौजूदा लिंक को बदलने के लिए इसका मतलब है।

nविकल्प थोड़ा जटिल है। मेरा मानना ​​है कि आपके आदेश ने लिंक को बदलने के बजाय लिंक के माध्यम से jdk1.7.0_07निर्देशिका के अंदर एक लिंक बनाया हो सकता है । यदि हां, तो आपको भ्रम से बचने के लिए लिंक को हटा देना चाहिए।jdk1.7.0_04oracle-jdk-7


आप विकल्प का उपयोग भी कर सकते हैं T, यानीln -sfT TARGET LINK_NAME
20
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.