मैं एक डायरेक्टरी में दूसरी डायरेक्टरी में हर फाइल को कैसे सिमिल करता हूं?


15

अगर मैं एक निर्देशिका है /fooउस में कुछ फाइलों के साथ, मैं कैसे में प्रत्येक प्रविष्टि सिमलिंक है /fooमें /bar/?

उदाहरण के लिए, यदि /fooफ़ाइलें हैं a, bऔर c, मैं तीन सिम्बल बनाना चाहता हूं:

  • /bar/a -> /foo/a
  • /bar/b -> /foo/b
  • /bar/c -> /foo/c

क्या आप सुनिश्चित हैं कि आप केवल foo के लिए बार समिंक करना नहीं चाहते हैं?
— रिच ब्रैडशॉ

इसका वास्तविक अनुप्रयोग यह है कि मैंने एक प्रोग्राम इंस्टॉल किया है और इसके एक्जीक्यूटेबल्स को अपने $ PATH में एक मानक फ़ोल्डर में ले जाना चाहूंगा, बजाय एक इंस्टॉल किए हुए पथ को जोड़ने के।
— स्टीवन

ऐसा लगता है कि यह सिर्फ इसे कॉन्फ़िगर करने के लिए एक बेहतर विचार होगा --prefix=।
— नमस्ते Feb१

जवाबों:


18

आप विकल्प के cpसाथ (GNU) का उपयोग कर सकते हैं --symbolic-link:

prompt$ mkdir foo
prompt$ cd foo
prompt$ touch a b c
prompt$ mkdir ../bar
prompt$ cd ../bar
prompt$ cp --symbolic-link ../foo/* .
prompt$ ls -l
total 0
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 a -> ../foo/a
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 b -> ../foo/b
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 c -> ../foo/c
prompt$

यह बिल्कुल समाधान प्रतीत होता है। बहुत बढ़िया!
— स्टीवन

यह बहुत सही है।
— नूरज

किसी भी तरह से यह निर्देशिकाओं के लिए लागू करने के लिए? जब मैं इसे चलाता हूं तो मुझे चेतावनी मिलती है "cp: omitting directory '।/baz'"
— Solidau

15

इसे आजमाइए:

ln -s /foo/* /bar

स्रोत निर्देशिका, जैसा कि प्रश्न में निर्दिष्ट है, है /foo। ध्यान दें कि इसे पूरी तरह से निर्दिष्ट किया जाना चाहिए (यानी रूट निर्देशिका में शुरू), इसलिए अन्य उदाहरण इस तरह दिखाई देंगे:

ln -s /some/dir/with/baz/* destdir
ln -s /dir/to/link/from/* /dir/to/link/to
ln -s $PWD/stuff/* more/stuff

क्या यह भी काम करता है?
— ctrlc-root

@ root.ctrlc: आपको स्रोत का पूरा पथ निर्दिष्ट करना होगा (जो /मेरे मूल उत्तर में है)। मैं एक स्पष्टीकरण जोड़ दूंगा।
— अगली सूचना तक रोक दिया गया।

मुझे लगता है कि अगर आप सब कुछ एक कमांड के साथ सिम्लिंक के रूप में कॉपी करना चाहते हैं, तो आपको ch -s का उपयोग करना होगा जैसे @hlovdal उत्तर, cp -rs /var/www/folder/ .हर सबफ़ोल्डर्स फ़ाइलों को सिम्लिंक के रूप में कॉपी करता है, न कि यह कि ln -s /var/www/folder/ .कौन मेरे कंप्यूटर पर सबफ़ोल्डर्स फ़ाइलों की नकल करता है।
— बपतिस्मा

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