Ln के लिए मापदंडों के क्रम को याद रखने के लिए टिप्स?


64

मैंने lnवर्षों से प्रतीकात्मक लिंक लिखने का उपयोग किया है लेकिन मुझे अभी भी मापदंडों का क्रम गलत है।

यह आमतौर पर मुझे लिखना है:

ln -s a b

और फिर अपने आप को याद दिलाने के लिए आउटपुट को देखता है।

मैं हमेशा ऐसा होने की कल्पना a -> bकरता हूं जब मैं इसे पढ़ता हूं जब यह वास्तव में विपरीत होता है b -> a। यह काउंटर-सहज महसूस करता है इसलिए मुझे लगता है कि मैं हमेशा खुद का दूसरा अनुमान लगा रहा हूं।

क्या किसी के पास सही क्रम को याद रखने में मेरी मदद करने के लिए कोई सुझाव है?


11
जब आप इसे "प्रतीकात्मक लिंक में टाइप करते हैं a, और इसे कॉल करते हैं b" तो इसे कभी-कभी कहने में मदद मिलती है
jsotola

2
आप cp के साथ दूसरा पैरामीटर बनाते हैं, और आप लिंक बनाते हैं। लेकिन अगर आप इसे गलत तरीके से प्राप्त करते हैं, तो कोई चिंता नहीं है, क्योंकि आप एक मौजूदा फ़ाइल को अधिलेखित नहीं कर सकते हैं या एक नए लिंक के साथ सिमिलिंक कर सकते हैं।
सुडोडस


1
इसे "बुरे आदमी का उपनाम" समझिए। उन्हें हमेशा उनके असली नाम से जाना जाता है, फिर उनके उपनामों से। Ex: टोनी बालोनी उर्फ ​​ऑस्कर मेयर। या आपके लिंक के मामले में, ln -sab का अर्थ है "फ़ाइल-ए को फ़ाइल-बी के रूप में भी जाना जाता है"।
स्कूटी एच।

1
ln source target। के रूप में ही cp source target, mv source target; ...
user207421

जवाबों:


40

मैं निम्नलिखित का उपयोग करता हूं: lnएक एक-तर्क रूप ( मैनपेज में सूचीबद्ध 2 रूप ) जिसमें केवल लक्ष्य की आवश्यकता होती है (क्योंकि lnलक्ष्य को जाने बिना कैसे काम कर सकता है ) और lnवर्तमान निर्देशिका में लिंक बनाता है। दो-तर्क फॉर्म एक-तर्क फॉर्म के अतिरिक्त है, इस प्रकार लक्ष्य हमेशा पहला तर्क होता है।


3
ध्यान दें कि कोई गंतव्य / लक्ष्य पथ वाला फ़ॉर्म, POSIX विनिर्देशन का विस्तार नहीं है ln
Kusalananda

1
@ कूसा: क्या आपने एक-तर्क के रूप में मेरे जवाब में 1971 का मैनुअल देखा? अगर यह 1971 में होता तो यह पॉज़िक्स का विस्तार कैसे हो सकता है? --- "

@ मुझे यकीन नहीं है कि मैं समझ सकता हूं कि आपका क्या मतलब है। क्या आप कह रहे हैं कि एक ऐतिहासिक कार्यान्वयन किसी तरह से वर्तमान POSIX मानक को रौंद देता है?
Kusalananda

1
मैं भी देखता हूं। विभिन्न नाम, समान आर्ग, कम से कम। मुझे नहीं पता था कि इन अर्ग नामों के साथ गन्नू ही है।

2
यहां बहुत सारे अच्छे जवाब थे (निश्चित रूप से @loa_in_ द्वारा कविता) लेकिन मैं इस एक के साथ जाने वाला हूं। यह कहते हुए कि मापदंडों का क्रम सुसंगत (अनदेखा -t) है तो यह लगभग एक प्रमाण की तरह लगता है। " lnवर्तमान निर्देशिका में लिंक बनाता है। दो-तर्क फ़ॉर्म एक-तर्क फ़ॉर्म के अतिरिक्त है और इसलिए लक्ष्य हमेशा पहला तर्क होता है"। क्योंकि यह समझ में आता है कि दूसरे रूप पर विचार करने पर यही स्थिति होगी, मुझे लगता है कि इससे मुझे याद रखने में मदद मिलेगी।
झरो

85

मैं " lnजैसा है" जा रहा हूं cp। 'स्रोत' को पहले आने की जरूरत है।


20
... और पसंद है mvmv, cpऔर lnसभी पहले तर्क के रूप में एक मौजूदा फ़ाइल लेते हैं, और दूसरे तर्क के रूप में इच्छित गंतव्य फ़ाइल या निर्देशिका नाम।
हंस-मार्टिन मोजर

7
यह शर्म की बात है कि memcpy, strcpyआदि दूसरे तरीके से काम करते हैं।
अर्कादिअस ड्रेबज़ीक

6
@ हंस-मार्टिनमोसनर, सिवाय इसके कि जब आप एक प्रतीकात्मक लिंक बनाते हैं, तो यह एक मौजूदा फ़ाइल नहीं होती है ...
ilkkachu

1
@ilkkachu तुम सही हो। अपवाद के बिना कोई नियम :-)
हंस-मार्टिन मोजर

1
@ArkadiuszDrabczyk दूसरी ओर, memcpy(dest,src,n);नक्शे की तरह कुछ बहुत अच्छी तरह से dest = src;। दूसरे शब्दों में, सेट ( nपहला nबाइट्स) src के (पहले बाइट्स) के बराबर है ।
एक CVn

10

अधिकांश यूनियनों के lnरूप में कमांड का दस्तावेज़

ln source target

(मैं विकल्पों को छोड़ रहा हूँ आदि)

उदाहरण:

जीएनयू lnमैनुअल source लक्ष्य और target लिंकनाम को कॉल करता है ।

शब्दों की जीएनयू पसंद को नजरअंदाज करते हुए, lnउपयोगिता उसी प्रकार के शब्दार्थ का अनुसरण करती है जैसे कि mvऔर स्रोत से बनाया गया लक्ष्यcp

इसलिए,

ln -s a b

bइंगित करने के लिए प्रतीकात्मक लिंक बनाएगा a

यह भी ध्यान दें कि प्रतीकात्मक लिंक बनाते समय , स्रोत केवल एक स्ट्रिंग है जो यह दर्शाता है कि प्रतीकात्मक लिंक को किस बिंदु पर इंगित करना चाहिए। आमतौर पर यह जाँचने के लिए कोई जाँच नहीं की जाती है कि यह किसी उपयोगी चीज़ की ओर इशारा करता है:

$ ln -s "hello world" README.txt
$ ls -l
total 0
lrwxr-xr-x  1 kk  wheel  11 Sep 15 11:39 README.txt -> hello world

5
मैं पूरी तरह से इस तथ्य के लिए GNU प्रलेखन को दोष देता हूं कि लोगों को यह गलत लगता है। उनका शब्दांकन समझ में आने योग्य है लेकिन उद्देश्यपूर्ण रूप से भ्रमित करने वाला है।
कोनराड रुडोल्फ

6
@KonradRudolph, इसके विपरीत, GNU शब्द मेरे लिए हाजिर है। उपयोगिता कहीं न कहीं इशारा करते हुए, किसी नाम के साथ एक लिंक बनाती है। "लिंक नाम" थोड़े स्पष्ट है, और "लक्ष्य" कुछ के लिए एक पूरी तरह से अच्छा विवरण है जो इंगित किया गया है । एक किस्से के रूप में, मुझे अभी भी कभी-कभी सोचना पड़ता है कि कौन सा तरीका ln -s a bकाम करता है, और इसका जीएनयू शब्द के साथ कोई लेना-देना नहीं है, क्योंकि मुझे नहीं लगता कि मैंने कभी मैन पेज में फिएटिंग को देखा है। : D (यह आसान है ln -si a bजब यह सुनिश्चित न हो कि यह bपहले से मौजूद है, तो शिकायत करेंगे ।)
ilkachachu

1
@KonradRudolph, हालांकि तकनीकी रूप से, कड़ी कड़ी के मामले में इसे "लक्ष्य" कहना गलत है , क्योंकि यह मौजूदा नाम नहीं है, लेकिन वास्तव में वास्तविक लक्ष्य है। मुझे आश्चर्य है कि अगर जीएनयू के लोगों ने सोचा कि एक आम उपयोगकर्ता को इसके बारे में ज्यादा विस्तार से नहीं सोचना चाहिए।
इलकाचू

यह इंगित करना दिलचस्प है, जैसा कि @ गैरी के जवाब की टिप्पणियों में उल्लेख किया गया है, कि लक्ष्य POSIX मानक में वैकल्पिक नहीं है।
झरो सेप

@kusa: "ln -s AB के साथ --- केवल B के लिए फ़ाइल का नाम कॉपी करें" मैंने आपकी व्याख्या को थोड़े बदले हुए संदर्भ में अपनाया है। मैं आपके कट्टरपंथी "हैलो वर्ल्ड" उदाहरण से भी सहमत हो सकता हूं। "केवल फ़ाइल का नाम 'एक स्ट्रिंग है। बस आपको संकेत देना चाहता हूं कि मैंने थोड़ा संपादित किया और बहुत कुछ जोड़ा।

7

मामले में यह किसी को भी मदद करता है: मैं के रूप में यह के बारे में सोच करने के लिए इस्तेमाल किया मिल गया है "ln क्या जहां " है, जो मदद करता है मुझे याद है कि पहला तर्क ( "क्या") मौजूदा फ़ाइल, दूसरा ( "कहाँ") है जगह है यह करने के लिए एक कड़ी डाल करने के लिए)। अधिकांश अन्य उत्तरों में तर्क के विपरीत, यह एक पैथी वाक्यांश से अधिक कुछ नहीं है जो मैं मानसिक रूप से खुद को सुन सकता हूं क्योंकि मैं एक कमांड टाइप कर रहा हूं, जो मेमोरी सहायता के रूप में कार्य करता है। यह शायद सभी के लिए उपयोगी नहीं होगा, लेकिन मुझे संदेह है कि यह कुछ लोगों की मदद करेगा।

यह मदद करता है कि अन्य मानक फ़ाइल हेरफेर कमांड एक ही सम्मेलन का उपयोग करते हैं, इसलिए मैं उसी के लिए cpऔर कर सकता हूं mv


4
मुझे इस बात का कुछ अंदाजा लग गया कि यह क्यों ठुकरा दिया गया। यहाँ बहुत कुछ नहीं है जो गलत हो सकता है - क्या मैंने ऑर्डर या कुछ मिलाया है?
डेविड जेड

मैं व्यक्तिगत रूप से सोचता हूं कि "ln what what" अभी भी स्पष्टीकरण के बिना स्पष्ट नहीं है: या तो क्या हो सकता है "लिंक को इंगित करने वाला लिंक क्या है?" (सही) या "किसी चीज़ से क्या लिंक करना है?" (गलत)। उसी के साथ: "लिंक कहां इंगित कर रहा है?" (गलत) या "लिंक कहां बनाया जाना चाहिए" (सही)। इसलिए यह जरूरी नहीं है कि अगर आप दूसरे का अनुमान लगा रहे हैं तो यह बहुत मदद करेगा। याद रखें कि cp और mv को मदद करनी चाहिए।
125_m_125

हम सभी UNIX कमांड से अपेक्षा करते हैं कि वह अन्य प्रकार के तर्क (जैसे grep करता है, निर्वासन के लिए) के बाद अपनी फ़ाइल तर्क शामिल करें। ln एक निश्चित सामग्री के साथ एक निश्चित प्रकार की एक फ़ाइल बनाता है। कि फाइलसिस्टम कुछ विशेष करता है और हम आमतौर पर इसमें कुछ स्रोत फ़ाइल के लिए रास्ता डालते हैं, यह ln के लिए आकस्मिक है। निर्वासन के लिए, मैं एक टेक्स्ट एडिटर लिख सकता हूं, जिसने 1 में एक सिमिलिंक में अपनी पहली पंक्ति की सामग्री संग्रहीत की है, जिसे 1 कहा जाता है। यह बहुत ही कम होगा लेकिन यह जोर देता है कि ln कुछ पाठ सामग्री के साथ कुछ प्रकार की फ़ाइल बनाता है, अधिक या कम, और कुछ भी नहीं। तर्क के आदेश को तर्कसंगत लगता है।
डन्नी

@ 125_m_125 आपके द्वारा प्रस्तुत वैकल्पिक व्याख्या मेरे लिए बहुत मायने नहीं रखती है, लेकिन यह ठीक है; यह मेमोरी सहायता सभी के लिए नहीं है।
डेविड जेड

6

मैंने हाल ही में इस विशेष बात को याद करने का एक शानदार तरीका सुना: एक तुकबंदी

कुछ पुराना, कुछ नया,

कुछ उधार, कुछ नीला,

और उसके जूते में एक छप्पन भोग।

पहली कविता यह है कि ln के तर्क क्या हैं: नई निर्देशिका प्रविष्टि के नाम के बाद कुछ पुराना है।


3
NAME    ln -- make a link
SYNOPSIS    ln name1[ name2 ]
DESCRIPTION ln creates a link to an existing file name1. 
            If name2 is given, the link has that name; 

1971 यूनिक्स फर्स्ट एडिशन मैनुअल से

एक दूसरा , सरल, वाक्य रचना रूप है।


संपादित करें: मैं लक्ष्य के बजाय फ़ाइल या FILENAME डाल --- टिप्पणियों को देखने के आदि भी तल पर बहुत लंबे अलावा देखते हैं, को संबोधित हिमशैल, हार्ड और सॉफ्ट की ln, न कि केवल यह की नोक।


तो GNU lnमें यह है:

ln [opt] FILENAME

In the 2nd form, create a link to FILENAME in the current directory.

जहां आपको लिंक नाम की आवश्यकता नहीं है। ln -s /usr/lib/modulesतुम्हारे जाने के बाद ए

modules -> /usr/lib/modules

FILENAME ("लक्ष्य" या "स्रोत") के समान नाम के साथ, आप जहां हैं वहीं। कोई विकल्प नहीं, कोई भ्रम नहीं।

अब यदि आप अधिक मांग कर रहे हैं और किसी अन्य नाम और / या कहीं और के तहत बनाई गई लिंक चाहते हैं , तो आप उस इच्छा को नाम या पथ के रूप में जोड़ते हैं । असली लक्ष्य पहले आता है, अतिरिक्त काल्पनिक नया लिंक नाम दूसरा।


या आप कहते हैं: "मैं इस तीर संकेतन को ls -lलिंक के लिए जानता हूं । मेरे पास अपने लिंक की दिशा दिखाने के लिए शेल में एक तीर नहीं है। इसलिए मुझे इसे चालू करना होगा।"

आप इसे एक दिशा में बनाते हैं, इसलिए आप इसे दूसरे में उपयोग कर सकते हैं।

(उत्तर-प्रश्न भाग का अंत)


एक अन्य स्तर पर, "लिंक" शब्द स्वयं एक गहरे छिपे हुए दोहरे अर्थ को वहन करता है। प्रतीकात्मक लिंक बाद में आए, इसलिए शुरुआती दिनों में एक लिंक सिर्फ एक लिंक था। कोई नरम और कठोर नहीं था, कोई -sविकल्प नहीं था। और अब मैं स्रोत-लक्ष्य प्रतीकवाद का भी उपयोग करता हूं:

mv    A B   --- move the whole file to B (dir or new name)
cp    A B   --- copy whole file (mv and cp are "the same" here)    
ln    A B   --- copy whole file MINUS data blocks (=copy only inode and name), and increase "link count" for track keeping

इस स्तर पर, लिंक हैं, लेकिन कोई हार्ड और सॉफ्ट नहीं है, और ls -lतीर नहीं दिखाता है, क्योंकि लिंक (हार्ड) में कोई दिशा नहीं है। यूनिक्स विकास के उस स्तर पर एक "लिंक" का मतलब था कि फाइल सिस्टम में फ़ाइल नाम "बी" (निर्देशिका प्रविष्टि "बी") एक ही इनोड की ओर इशारा करता है जैसा कि फाइलनाम "ए" इंगित कर रहा है।

फ़ाइलें A और B एक साथ "लिंक" हैं, क्योंकि वे समान ब्लॉक साझा करते हैं। तो अब हर आरएम के साथ, कर्नेल को जांचना होगा: क्या मैं डिस्क पर इस फ़ाइल के ब्लॉक को हटा / मुक्त करता हूं, या क्या कोई अन्य फ़ाइल उसी ब्लॉकों से जुड़ी है? उसके लिए, एक लिंक काउंटर का उपयोग किया जाता है।

कहते हैं कि आप एक बड़ी फ़ाइल को चालू रखना चाहते हैं / हटाए जा रहे हैं ln /tmp/bigfile। अब आपके पास काम कर रहे डायर में एक बड़ा बिगफुल है। "ओरिजिनल" की सफाई / tmp और rmoving के बाद, आप खुशी से उसी डेटा ब्लॉक का उपयोग करते हैं। आपको एक मृत या झूलने वाली कड़ी नहीं मिलती है, आपके पास एक सामान्य फाइल है। हर फाइल प्रविष्टि के रूप में कोई फाइल नहीं बल्कि केवल फाइलसिस्टम ब्लॉक की ओर इशारा करता है। केवल अब "सफाई" / tmp उतनी प्रभावी नहीं है जितनी कि थी। यह खाली दिखता है, और यह है, लेकिन विभाजन पर ब्लॉक मुक्त नहीं हुआ है।

भले ही हार्ड लिंक में स्पेस की लागत नहीं होती, क्योंकि cp अप्रत्यक्ष रूप से, यह कर सकता है।

ln -sऊपर दिए गए अनुक्रम में जोड़ना :

ln -s A B   --- copy only the file's name to "B"   

अब "बी", सॉफ्ट लिंक, केवल पथनाम के साथ एक स्ट्रिंग है। यह "सॉफ्ट" जानकारी है। तकनीकी रूप से "ए" और "बी" असंबंधित हैं। लेकिन फिर भी बी नए अर्थों में एक "लिंक" है जिसे आप "ए" के शॉर्टकट के रूप में उस संग्रहीत पथनाम का उपयोग कर सकते हैं । अब यह "ए" (अवधि) का लिंक है न कि "फाइल ए के इनोड से जुड़ा"

दोनों प्रकार के लिंक न केवल मनुष्यों को भ्रमित कर सकते हैं बल्कि कर्नेल / एफएस भी कर सकते हैं। 1971 का मैन पेज नोट: "BUGS: लिंक दो बार बैकअप मिलता है, और अलग इनोड के साथ अलग फ़ाइलों के रूप में पुनर्स्थापित किया जाता है।"

निर्देशिकाओं के लिए हार्ड लिंक (दुर्लभ / अनुमति नहीं) आसानी से रोक के लिए नेतृत्व कर सकते हैं।

निर्देशिकाओं के लिए नरम लिंक (बहुत आम) अनन्त छोरों को जन्म दे सकता है - उपयोगिताओं / कर्नेल द्वारा पहचाना जाना चाहिए।

बाश में व्यावहारिक उदाहरण

एक नियमित फ़ाइल "F" से शुरू ...

ln F Fhard

... Fhard को F के समान आकार देता है, लेकिन वे बिना तीर के गहरे लाल रंग में दिखाई देते हैं ls -l --colorstat"इनोड: xyz" के संबंध में "लिंक: 2" दिखाने के कारण । हार्ड लिंकिंग F, F को हार्ड लिंक में बदल देता है। दोनों "नियमित फ़ाइल" के लिए फ़ाइल नाम लिखें / रहें। लेकिन दोनों में 1 से ऊपर एक लिंक गिनती के साथ एक इनकोड है।

   ln -s F Fsoft

... बनाता है एक छोटे से "अनियमित" फ़ाइल "Fsoft" filetype "प्रतीकात्मक लिंक" के साथ --- एक खाली अमीर से भी अधिक अंतरिक्ष की बचत। एक ls -l"एफ" के लिए कुछ खास नहीं दिखाता है। Fsoft के लिए, दिखाया गया आकार 1 बाइट है क्योंकि स्ट्रिंग 'F' है, और Fsoft -> Fनाम के रूप में प्रदर्शित किया जाता है। किसी को पहचानने के लिए सॉफ्ट लिंक को रंगीन करने की आवश्यकता नहीं है। क्योंकि संक्षिप्त रूप में ls -Fआपको एक @ संलग्न श्रृंखला मिलती है :Fsoft@

इसके साथ ls -lऐसा दिखता है:

-rw-r--r-- 2 root root 6070340 Sep 16 16:28 F
-rw-r--r-- 2 root root 6070340 Sep 16 16:28 Fhard
lrwxrwxrwx 1 root root       1 Sep 16 16:31 Fsoft -> F

Fhard में F का आकार और प्रकार होता है।

Fsoft में F का नाम और F का नाम आकार के रूप में, और एक अलग फ़ाइल प्रकार है।

लघु ls -sF:

5932 F    5932 Fhard     0 Fsoft@

जोड़ने से --block-size=1समान आकार नहीं मिलते हैं। Fsoft का आकार "एक बाइट, शून्य ब्लॉक" है। F और Fhard समानांतर में विचलित होते हैं:

6074368 F  6074368 Fhard    0 Fsoft@

यह देखने के लिए कि Fsoft झूल रहा है या नहीं, lsआपको रंगों का उपयोग करने देता है।

ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file

2

यह याद रखना वास्तव में उपयोगी है कि लिंक का नाम वैकल्पिक है। यदि यह नहीं दिया जाता है, तो लिंक लक्ष्य के आधार का उपयोग किया जाता है।

ln -s /path/to/file1 file1

पूरी तरह से लिंक नाम छोड़ने के समान है:

ln -s /path/to/file1

इससे कोई मतलब नहीं होगा अगर लिंक लक्ष्य का अंतिम उल्लेख किया गया था।


1

यूनिक्स सोचो -> एटी एंड टी -> सही पर गंतव्य:

mov %eax, %ebx  ;; AT&T style assembler syntax: %ebx register gets value of %ecx

mv foo bar    ;; foo renamed to bar

cp foo bar    ;; contents of foo go to bar

foo | bar     ;; data moves left to right in pipeline

ln abc def    ;; link to abc installed as def

"सीपी फू बार" का अर्थ है "बार"। "ln abc def" का अर्थ "abc" है। यदि आपने प्रतीकों को रखा था: "फू करने के लिए"। ठीक यही समस्या है।

@ user370539 यह सच नहीं है; के बाद ln abc def, abcऔर defएक ही वस्तु हैं; वे अविवेच्य हैं। इसके अलावा, ऑपरेशन पर abcइसकी लिंक गिनती बढ़ाने के अलावा कोई प्रभाव नहीं है । गंतव्य है def। ऑब्जेक्ट के लिए एक पॉइंटर को नए defस्थान पर स्थापित किया गया है ।
कज़

@ user370539 यदि लिंक प्रतीकात्मक है, तो ln -s abc defइसका मतलब है कि सामग्री abcस्थान पर लिखी गई है defabcकुछ भी हल करने की जरूरत नहीं है; यह एक लटकती हुई कड़ी हो सकती है।
कज़

आपकी टिप्पणी ठीक है ... गलत है। होना तो इसका उलटा चाहिए।
२१:५० पर रेक्सकोगिटंस

@rexkogitans मेरी बात यह है कि यह सुसंगत है। यदि आदेश "गलत" है और उलट किया जाना चाहिए, तो यह उन सभी आदेशों के लिए किया जाना चाहिए: mv dest src, ln [ -s ] dest src, cp dest src, ...
Kaz

0

व्यक्तिगत रूप से, मैं एक्स को याद करने से बचना पसंद करता हूं , यह जानने के पक्ष में कि मुझे आवश्यकता होने पर एक्स की तलाश कहां करनी है। मैं "सॉरी से बेहतर सुरक्षित" रवैये का भी प्रशंसक हूं, इसलिए मैं हमेशा ध्यान से जांचना पसंद करता हूं कि मैं क्या लिख ​​रहा हूं, खासकर रूट के रूप में।

इस मामले में, उत्तर शाब्दिक रूप से मैनपेज की पहली पंक्तियों में है:

   ln [OPTION]... [-T] TARGET LINK_NAME
   (...)
   In the 1st form, create a link to TARGET with the name LINK_NAME.

मुझे यह सुझाव नहीं दिया जाता कि अगर इसे मैनपेज में तब्दील करना जरूरी है, लेकिन चूंकि यह शुरुआत में सही है, तो IMHO यह 3 सेकंड के लायक है जिसे टाइप करना man lnऔर छोड़ना है।


-1

Cp के समान, जिसे मैंने मानसिक रूप से "इस पर कॉपी करें" के रूप में पढ़ा है, मैंने ln कमांड को "इस से लिंक करें" के रूप में पढ़ा है।



तो "ln -s AB 'A A से B लिंक करता है? क्या यह अब A -> B या B -> A है? मुझे लगता है कि अधिकांश ने भ्रम की पहली अवस्था को पार नहीं किया है। वे कहते हैं कि यह सरल है, लेकिन यह सिर्फ गलत है।

-2

इस तरह से मुझे यह याद है: लक्ष्य को भूल जाओ। दूसरे शब्दों में, यदि मैं dir1 में हूं और फाइल 1 के लिए एक सिम्लिंक बनाना चाहता हूं जो / कुछ / अन्य / dir / में मौजूद है, तो मैं बस करूंगा:

ln -s /some/other/dir/file1

आपको dir1 में फ़ाइल 1 नामक एक सिमलिंक मिलेगा जो / / कुछ / अन्य / dir / file1 को इंगित करता है। Ln के लिए मैन पेज से:

ln [OPTION] ... TARGET (दूसरा फॉर्म) ... 2nd फॉर्म में, TARGET का लिंक मौजूदा डायरेक्टरी में बनाएं।

बस यह ध्यान रखें कि यह काम केवल तब होता है जब आप सिम्लिंक को लक्ष्य के समान नाम देना चाहते हैं (जो कि सबसे अधिक संभावना है)।


क्या कोई यह बता सकता है कि यह नीचा क्यों था? मैं सिर्फ मैन पेज से कॉपी-पेस्ट करता हूं (और तदनुसार जिम्मेदार)। यह दूसरों को यह समझने में मदद करेगा कि एसई पर कैसे पोस्ट किया जाए। धन्यवाद।
बनी

मैं समझा सकता हूं: यह एक सांस्कृतिक टकराव है। चिंता मत करो। अन्य उत्तरों, टिप्पणियों की जाँच करें ...

-3

मैं @ गैरी के उत्तर पर विस्तार करना चाहूंगा।

अपने एवेन्यू के अलावा: lnकमांड मनमानी संख्या के तर्कों को स्वीकार कर सकती है, ताकि आप एक आह्वान में कई सिम्बलिंक बना सकें (जो आपको जरूरत पड़ने पर काम आए )।

  1. उस ज्ञान के साथ, जब आप मुठभेड़ करते हैं ln -s foo bar baz, तो सबसे तार्किक व्याख्या क्या है जो तर्क का अर्थ है?
  2. # 1 के उत्तर के साथ, जब आप मुठभेड़ करते हैं ln -s foo bar, तो सबसे तार्किक स्पष्टीकरण क्या है जो तर्क का अर्थ है?

1
यदि आपके पास गैरी के उत्तर के अतिरिक्त है, तो कृपया इसे एक संपादन के रूप में सुझाएं। जैसे, आपके दो अनुगामी (काल्पनिक?) प्रश्न इस "उत्तर" को दूसरे प्रश्न की तरह देखते हैं।
जेफ स्कालर

-3

एक ऐसे संस्करण की कल्पना करें, lnजिससे आप एक कमांड में कई (प्रतीकात्मक) लिंक बना सकते हैं।

Synopsis: ln -s TARGET NEW_LINK...
Example: ln -s target_file  new_link_1  new_link_2  new_link_3

इससे कोई उल्टा नहीं होगा, क्योंकि एक सिम्क्लिन केवल TARGETएक समय में एक को इंगित कर सकता है और सामान्य कमांड लाइन कन्वेंशन को दोहराता हुआ भाग कमांड लाइन के अंत में रखा जाता है, जैसे।grep PAT [FILE]...


-6

" ऐसा lsदिखाता a -> bहै ln a b"

बस याद रखें कि यह गलत है।


6
मुझे हमेशा याद रहता है "कुछ-न-कुछ हमेशा गलत होता है"। लेकिन कौन सा तरीका गलत है? यही समस्या है। समस्या तब मेरी दूसरी हो जाती है, जब मैं सही हो जाता हूं। क्योंकि मैं वास्तव में सही आदेश याद नहीं कर सकता!
झेरो

मुझे लगता है कि मैं समझता हूँ कि तुम क्या मतलब है: के उत्पादन ls -l: link -> targetकैसे स्थापित करने के लिए के अपने विचार को भ्रमित कर सकते lnकमांड लाइन। लेकिन मुझे डर है कि यह ज्यादा मदद नहीं करेगा।
सुडोडस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.