2009-01-08 14 views
20

मुझे एहसास है कि मुझे पहले से ही इसका जवाब पता है, लेकिन मैंने सोचा कि मैं जांच करूंगा।क्या मैं एकाधिक निर्देशिकाओं को एक में जोड़ सकता हूं?

images_a/ 
images_b/ 
images_c/ 

मैं ऐसा है कि इस नए निर्देशिका उन सभी निर्देशिकाओं की सामग्री है सिमलिंक किसी प्रकार का बनाया जा सकता:

मैं अलग फ़ोल्डरों की एक संख्या है? यह नया "images_all" images_a, images_b और images_c में सभी फ़ाइलों को शामिल करेगा?

उत्तर

11

नहीं। आपको सभी व्यक्तिगत फ़ाइलों को प्रतीकात्मक रूप से लिंक करना होगा।

क्या आप सकता है कर समय-समय पर चलाने के लिए एक नौकरी जो मूल रूप से images_all में मौजूदा सांकेतिक लिंक के सभी, तो तीन अन्य निर्देशिकाओं से सभी फ़ाइलों के लिए लिंक फिर से बनाने हटाया बनाने के लिए है, लेकिन यह का एक सा एक kludge, कुछ इस तरह:

rm -f images_all/* 
for i in images_[abc]/* ; do; ln -s $i images_all/$(basename $i) ; done 

ध्यान दें कि, जबकि यह काम चल रहा है, यह अन्य प्रक्रियाओं है कि फ़ाइलें अस्थायी रूप से गायब हो गए हैं करने के लिए प्रकट हो सकता है।

आपको उस मामले के लिए भी देखना होगा जहां दो या दो से अधिक निर्देशिकाओं में एक फ़ाइल नाम मौजूद है।


कुछ समय बाद इस सवाल का वापस आना है, यह भी मेरे लिए होता है कि आप समय के दौरान जो फ़ाइलें उपलब्ध नहीं हैं कम से कम कर सकते हैं।

यदि आप उन्हें विभिन्न निर्देशिका से लिंक करते हैं तो अपेक्षाकृत तेज़ mv संचालन करें जो समय को कम करेगा। कुछ ऐसा:

mkdir images_new 
for i in images_[abc]/* ; do 
    ln -s $i images_new/$(basename $i) 
done 

# These next two commands are the minimal-time switchover. 
mv images_all images_old 
mv images_new images_all 

rm -rf images_old 

मैंने परीक्षण नहीं किया है कि इसे लागू करने वाले किसी भी व्यक्ति को उपयुक्तता या अन्यथा पुष्टि करनी होगी।

+4

आप symlinking करने के लिए 'lndir' उपयोग कर सकते हैं। –

8

आप यूनियनफ़ेस जैसी यूनियन फ़ाइल सिस्टम को आजमा सकते हैं!

http://www.filesystems.org/project-unionfs.html

http://aufs.sourceforge.net/

+5

और वाक्यांश "अभी भी विकास चरण में है" हमले भी सबसे बुरी आत्मा के दिल में डरते हैं :-)। – paxdiablo

+0

जो बहुत अच्छा लग रहा है, लेकिन हाँ, एक डरावना डरावना लगता है। उबंटू में थोड़ी देर के लिए – nickf

+2

'औफ्स' का उपयोग किया गया है, इसलिए यह शायद पर्याप्त स्थिर है। –