OS X में सिमिंक कैसे बदलें?


21

मैं कैसे बदल सकता हूँ जहाँ एक सिमलिंक इंगित करता है, बिना हटाने और एक नया बनाने (के साथ ln -s "/path/to/point/to" "/path/where/symlink/is")?

जब मैंने जावा के "करंट" सिम्लिंक के लिए ऐसा करने की कोशिश की, तो जावा भी काम नहीं करेगा (कमांड लाइन से, कम से कम, 'सेगमेंटेशन फ़ॉल्ट') कहा, लेकिन जब मैंने पुराने "करंट" सिम्लिंक को बहाल किया तो यह सामान्य हो गया था मशीन (लेकिन बाद में मुझे पता चला कि मुझे /Applications/Utilities/Java Preferences.appवर्तमान जावा संस्करण को बदलने के लिए वैसे भी उपयोग करना चाहिए )।

जवाबों:


8
mkdir /path/where/newsymlink
ln -s /path/to/point/to /path/where/newsymlink/is
mv /path/where/newsymlink/is /path/where/symlink/
rmdir /path/where/newsymlink

हालाँकि, जावा वरीयताएँ उपयोगिता केवल प्रतीकात्मक लिंक से अधिक बदलती हैं; आपको यह सुनिश्चित करने के लिए उपयोग करना चाहिए कि जावा संस्करण बदल गया है।


mv कमांड सिर्फ इसे नाम नहीं देगा ..?
mk12

.. मैंने कोशिश की है कि, यह नए सिंपलिस को फ़ोल्डर में ले जाता है जो पुराने को इंगित करता है।
mk12

पहला कमांड सिम्लिंक बनाता है जो आप चाहते हैं, और दूसरा कमांड मौजूदा पॉइंटर को पॉइंटर से नई जगह पर पुरानी जगह पर बदल देता है। एमवी परमाणु है इसलिए सिम्लिंक हमेशा मौजूद रहेगा।
mark4o

.. लेकिन यह अभी भी काम नहीं करता है .. यह फ़ोल्डर में नया पॉइंटर ले जाता है जो पुराने को इंगित करता है।
mk12 2

/path/where/symlink/isसहिष्णुता है कि आप बदल रहे हैं। इन आदेशों का उपयोग करने से इसे इंगित करने के लिए बदल जाएगा /path/to/point/to। मूल सिम्कलिन को इंगित करने वाले फ़ोल्डर को बिल्कुल भी नहीं छुआ जाता है।
निशान 4

30
ln -hfs newlocation existinglink

या

ln -nfs newlocation existinglink

नए लिंक की ओर इशारा करने के लिए मौजूदा लिंक को बदल देगा

(-एन और -एच ऑपरेशन में समान हैं)

'आदमी लान' से

-अगर target_file या target_dir एक प्रतीकात्मक लिंक है, तो इसका पालन न करें। यह एक सीलिंक को बदलने के लिए -f विकल्प के साथ सबसे उपयोगी है, जो एक निर्देशिका को इंगित कर सकता है।

-यदि लक्ष्य फ़ाइल पहले से मौजूद है, तो इसे अनलिंक करें ताकि लिंक हो सके। (-F विकल्प किसी भी पिछले -i विकल्प को ओवरराइड करता है।)

-s क्रेई एक प्रतीकात्मक लिंक


-nfsसंस्करण लिनक्स पर भी काम करता है, तो यह अगर कोई चिन्ताओं अधिक पोर्टेबल है।
23

10

प्रयत्न:

unlink /path/to/current/link
ln -s /path/to/target /path/to/symbolic/link

1
मेरे देर से 2013 मैकबुक प्रो पर Mavericks के साथ, मुझे दो मापदंडों को बदलना पड़ा: ln -s / path / to / symbolic / link / path / to / target
Marius Waldal

1

Ln कमांड आपको लिंक बदलने नहीं देता है, केवल नए ही बनाता है।


0

क्या आपने लिंक बदलने से पहले और बाद में लिंक पर अनुमतियों और लक्ष्यों पर तुलना की है? आपको इसे काम करने के लिए बस उपयुक्त चाउन और चामोद कमांड का पालन करने की आवश्यकता हो सकती है।


वैसे मुझे भी नहीं पता कि इसे कैसे बदला जाए। और मुझे पता नहीं है कि चोम और चामोद क्या करते हैं।
mk12

2
किसी फ़ाइल और / या निर्देशिका के स्वामित्व में परिवर्तन होना। chmod एक फ़ाइल और / या निर्देशिका की अनुमतियों को बदलता है। ये हर यूनिक्स प्लेटफॉर्म के बारे में मानक हैं। प्रत्येक को यहाँ समझाने के लिए बहुत अधिक विवरण, इसलिए मैं प्रत्येक को ट्यूटोरियल के लिए गुगली करने की सलाह दूंगा। आप कमांड के वास्तविक मैनुअल को पढ़ने के लिए "मैन चोमड" या "मैन चामॉड" भी कर सकते हैं (मैनुअल से बाहर निकलने के लिए हिट q)।
13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.