मुझे उम्मीद थी:बैश: फ़ाइलों रिकर्सिवली नामित कॉपी, संरक्षण फ़ोल्डर संरचना
cp -R src/prog.js images/icon.jpg /tmp/package
गंतव्य निर्देशिका में एक सममित संरचना प्राप्त होते हैं:
/tmp
|
+-- package
|
+-- src
| |
| +-- prog.js
|
+-- images
|
+-- icon.jpg
लेकिन इसके बजाय, फ़ाइलों की दोनों कॉपी कर रहे हैं में/tmp/पैकेज में। एक फ्लैट प्रति। (यह ओएसएक्स पर है)।
क्या कोई साधारण बैश फ़ंक्शन है जिसका उपयोग मैं सभी फ़ाइलों की प्रतिलिपि बनाने के लिए कर सकता हूं, जिसमें वाइल्डकार्ड (उदा। Src/*। Js) द्वारा निर्दिष्ट फ़ाइलों को गंतव्य निर्देशिका में उनके सही स्थान पर निर्दिष्ट किया गया है। थोड़ा सा "प्रत्येक फ़ाइल के लिए, mkdir -p $(dirname "$file"); cp "$file" $(dirname "$file")
चलाएं", लेकिन शायद एक ही कमांड।
This is a relevant thread, which suggests it's not possible. लेखक का समाधान मेरे लिए इतना उपयोगी नहीं है, क्योंकि मैं केवल फाइलों, वाइल्डकार्ड की सूची प्रदान करना चाहता हूं या नहीं, और उन सभी को गंतव्य डीआईआर में कॉपी किया गया है। आईआईआरसी एमएस-डॉस xcopy यह करता है, लेकिन सीपी के लिए कोई समकक्ष नहीं लगता है।
ठीक है तो मैंने बहुत जल्द बात की। मुझे यह जवाब सबसे अच्छा लगता है। – EMPraptor
धन्यवाद। मैक पर "सीपी - पारेन्ट्स" संभव नहीं है, लेकिन अन्य यूनिक्स के लिए ध्वज को जानना अच्छा लगता है। rsync -R इस समस्या के लिए सबसे सरल पोर्टेबल समाधान है। – mahemoff
मैंने इसे अपने लालित्य/यादगारता के लिए स्वीकार किया, लेकिन अभी पता चला है कि यह पूरी निर्देशिका (कम से कम ओएसएक्स पर) की प्रतिलिपि नहीं करता है, जबकि नीचे वाला टैर एक करता है। – mahemoff