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


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.