खाली निर्देशिका के बिना निर्देशिका पेड़ की प्रतिलिपि बनाएँ?


17

मेरे पास निम्नलिखित पेड़ हैं

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G

मुझे इस पेड़ को किसी अन्य गंतव्य पर कॉपी करने की आवश्यकता है, जो सभी खाली निर्देशिकाओं की पुनरावृत्ति करता है। इसलिए गंतव्य समाप्त होता है:

C
|-- e

आप यूनिक्स, rsync, आदि के साथ ऐसा कैसे करेंगे?

जवाबों:


29

बेशक कुछ मिनट बाद मुझे एक आसान तरीका पता चलता है। rsyncएक --prune-empty-dirsविकल्प है।


1

इस समस्या के विभिन्न समाधान हैं ( इस वेब पेज से लिए गए ):

यह विकल्प खोज कमांड के साथ mkdir कमांड का उपयोग करता है। इस विधि में यह भी आवश्यक है कि आप कमांड को निष्पादित करते समय स्रोत फ़ोल्डर के अंदर हों।

bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;

खोज और cpio का उपयोग करना

bash$ find /path/to/source -type d | cpio -pd /path/to/dest/

रुपये का उपयोग करना

bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest

या

bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest

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