मैं टर्मिनल में एक प्रतीकात्मक लिंक कैसे बना सकता हूं?


351

प्रतीकात्मक लिंक / सॉफ्ट लिंक बनाने के लिए किस कमांड का उपयोग किया जाता है?

जवाबों:


542
┌── ln(1) link, ln -- make links
   ┌── Create a symbolic link.
                            ┌── the optional path to the intended symlink
                               if omitted, symlink is in . named as destination
                               can use . or ~ or other relative paths
                      ┌─────┴────────┐
ln -s /path/to/original /path/to/symlink
      └───────┬───────┘
              └── the path to the original file/folder
                  can use . or ~ or other relative paths
$ echo content > original
$ ln -s original symlink
$ ls -la original symlink
-rw-r--r--  1 grgarside  staff    8 28 Jan 18:44 original
lrwxr-xr-x  1 grgarside  staff    8 28 Jan 18:44 symlink -> original
$ cat symlink
content

Ln (1) के बारे में अधिक जानकारी के लिए मैन पेज देखें ।

सिमलिंक का मार्ग वैकल्पिक है; यदि छोड़ दिया जाता है, तो lnवर्तमान निर्देशिका में गंतव्य के समान नाम के साथ एक लिंक बनाने में चूक होती है:

$ cd ~/Documents
$ ln -s ../Pictures
$ ls -l Pictures
lrwxr-xr-x  1 user  staff  11 Feb  1 17:05 Pictures -> ../Pictures

सिस्टम निर्देशिका को बदलने के लिए एक सिम्लिंक बनाने के लिए (जैसे यदि आप /Usersकिसी अन्य डिस्क ड्राइव की ओर इशारा करना चाहते हैं ), तो आपको सिस्टम इंटीग्रेशन सुरक्षा को अक्षम करने की आवश्यकता है । सिमिलिंक सेट होने के बाद आप इसे पुन: सक्षम कर सकते हैं।


63
यदि केवल मैन पेज ही आपके उत्तर के रूप में स्पष्ट थे!
एड्रियन लिंच

अनुमति अस्वीकृत: S क्या आप मुझे संकेत दे सकते हैं? उपयोगकर्ताओं के लिए सिमलिंक बनाने की कोशिश कर रहा हूं ताकि मैं इसे अन्य हार्ड डिस्क पर उपयोग कर सकूं और ssd में सिर्फ़ सिमिलिंक है। धन्यवाद
इवोक्स

2
@patrix मैंने स्पष्ट करने के लिए अपना उत्तर संपादित किया है; आगे संपादित करने के लिए स्वतंत्र महसूस करें।
GRG

4
मजेदार तथ्य: मूल वास्तव में मौजूद नहीं है। आदेश ln -s "This directory is no longer in use" READMEपूरी तरह से वैध होगा, और फिर कोई भी निष्पादन ls -lसंदेश को देखेगा।
एडवर्ड फॉक

1
भविष्य के संदर्भ के लिए: आपको अंतरिक्ष को बचाने के लिए macOS पर उपयोगकर्ताओं को स्थानांतरित करने की आवश्यकता नहीं है। आप उपयोगकर्ता सूची को राइट-क्लिक करके उपयोगकर्ताओं और समूहों के तहत सिस्टम प्राथमिकता में उपयोगकर्ताओं की होम निर्देशिका पथ को व्यक्तिगत रूप से बदल सकते हैं।
पीटर डब्ल्यू

73

आज्ञा कहलाती है ln। यदि विकल्प के साथ प्रयोग किया जाता है तो -sयह वर्तमान निर्देशिका में एक प्रतीकात्मक लिंक बनाएगा:

ln -s /any/file/on/the/disk linked-file

1
क्या लिंक-फाइल पहले मौजूद है? मुझे लक्ष्य पर फ़ाइल नहीं मिली त्रुटि।
AlxVallejo

2
फ़ाइल नहीं (आपको एक त्रुटि संदेश मिलता है अगर वह करता है), लेकिन किसी भी पथ में सभी निर्देशिकाएं। यदि आप फंस गए हैं, तो शीर्ष दाईं ओर पूछे गए प्रश्न बटन का उपयोग करके एक नया प्रश्न पूछने के लिए स्वतंत्र महसूस करें। संदर्भ प्रदान करने के लिए इस प्रश्न का लिंक शामिल करें।
nohillside

इस आदेश को चलाने से पहले प्रतीकात्मक लिंक मौजूद नहीं होना चाहिए। लेकिन जहाँ तक मुझे पता है एक वैध मार्ग की आवश्यकता है। यदि इस कमांड को चलाने से पहले आउटपुट फाइल का फोल्डर मौजूद नहीं है, तो आपको No such file or directoryत्रुटि भी मिलेगी ।
डेनिज कपलान

34

मुझे पता है कि यह प्रश्न टर्मिनल के बारे में स्पष्ट रूप से पूछ रहा है, लेकिन यदि आप GUI लैंड में हैं और टर्मिनल लैंड में प्रवेश नहीं करना चाहते हैं, तो आप SymbolicLinker का उपयोग कर सकते हैं । यह फाइंडर में आपकी सेवा मेनू में "मेक सिम्बोलिक लिंक" विकल्प डालता है।

एक फ़ोल्डर के लिए एक संदर्भ मेनू, "मेक सिम्बोलिक लिंक" के साथ एक "सेवा" सबमेनू दिखाते हुए hilighted

एक प्रतीकात्मक लिंक के लिए एक संदर्भ मेनू, "सिम्बॉलिक लिंक बनाओ" के साथ hilighted


3
मुझे यह जानकर अच्छा लगेगा कि इसे क्यों
डाउन किया

10
शायद इसलिए कि प्रश्न "मैं टर्मिनल में एक प्रतीकात्मक लिंक कैसे बना सकता हूं?" लेकिन मैं आपको मना नहीं कर रहा हूँ :)
vedrano

1
@EdwardFalk मुझे लगता है कि एल कैपिटान में, आप एक फ़ाइल को खींचते हुए Command+ पकड़ सकते हैं Option... बाद में जवाब अपडेट करेंगे
बेन लेगिएरो

1
@BenLeggiero जो एक उपनाम बनाता है।
एंडी स्टीवर्ट

2
@BenLeggerio, अंतर यहाँ बताया गया है: apple.stackexchange.com/questions/2991/…
MiB


5

ln -s /some/dir/ ~/Desktop/dir

आप उसी कमांड का उपयोग करके डायरेक्टरी के लिए एक सिमलिंक भी बना सकते हैं

ln -s "$(pwd)" ~/Desktop/dir

वर्तमान निर्देशिका में आप सहिष्णुता बनाने के लिए।


2
एक साधारण .(डॉट) pwd देगा। कोई फैंसी तर्क की जरूरत नहीं है :)
mylogon

@mylogon हाहा मैं कभी-कभी पलटना पसंद करता हूं। मेरा जवाब आसान कर दिया!
जेराल्ड

@mylogon मुझे बस एहसास हुआ कि macOS .पर काम नहीं करता। अभी तक लिनक्स पर कोशिश नहीं की। इसके प्रयोग से ./परिणाम की ओर संकेत किया foo -> ./fooगया।
जेराल्ड

आपके द्वारा टाइप की गई पूरी कमांड क्या है?
Mylogon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.