लिनक्स Ubutnu पर पैरेंट फोल्डर में फोल्डर को कैसे ले जाएँ


0

मेरे पास निम्नलिखित के समान अलग-अलग गहराई के साथ एक फ़ोल्डर संरचना है।

parent/location/businessname/sublocation/hotelname
parent/location/businessname/hotelname

सभी सबसे निचले फ़ोल्डर होटल के नाम हैं और मैं इन फ़ाइलों को एक PHP फ़ंक्शन में स्रोत करने का प्रयास कर रहा हूं। एक तरफ, मैं जो करने की कोशिश कर रहा हूं, वह है सबसे नीचे के सभी फ़ोल्डरों और उनकी सामग्री को एक सिंगल पैरेंट फ़ोल्डर में नीचे के रूप में हड़पना।

parent/hotelname

मैं एक उबंटू मशीन पर हूं और मैं कमांड लाइन पर नया हूं, लेकिन इससे पूरी तरह अनभिज्ञ नहीं हूं। किसी भी सहायता की सराहना की जाएगी।


प्रतीकात्मक लिंक ln -s पैरेंट / लोकेशन / बिज़नेस / सब्लोकेशन / होटल का नाम पेरेंट / लोकेशन / बिज़नेसमैन / होटेलनाम होटल
फ्रांसिस्को

खिचड़ी भाषा है कि करते हैं। लंबी कहानी लेकिन सिमलिंक संभव नहीं है, मुझे होटल के फ़ोल्डर के अलावा अन्य सभी फ़ोल्डरों को भी खोदने की आवश्यकता है क्योंकि पिछले फ़ोल्डरों को सटीक नाम होने की आवश्यकता है, लेकिन उनमें से कुछ सही नहीं हैं। फिर भी धन्यवाद।
एलेक्स नॉप

इतनी पथरीली राह आप चाहते हैं?
फ्रांसिस्को तापिया

फ़ाइल एक्सप्लोरर के बारे में क्या? क्या यह कमांड लाइन पर होना चाहिए? जब तक आपके पास X11 तक पहुंच नहीं है ..
लेप्टानेटर

क्या अंतिम निर्देशिका हमेशा होती है hotelname/? यदि हां, तो आप कुछ का उपयोग कर सकते हैं find parent/ -type d -name hotelname -exec ln "{}/*" "{TargetDir}/" \;। यह मूल संरचना में किसी भी फाइल को बदले बिना एक ही लक्ष्य निर्देशिका में फ़ाइलों में से प्रत्येक के लिए हार्ड लिंक बनाएगा। किसी भी समय लक्ष्य निर्देशिका को हटाया या बनाया जा सकता है।
AFH

जवाबों:


0

लीफ-फोल्डर अधिकांश फ़ोल्डर में हैं businessname/या नहीं businessname/sublocation, आप पहले नेस्टेड फ़ोल्डर से शुरू कर सकते हैं, फिर उसी स्तर पर होटल में आगे बढ़ें sublocation/:

$ cd /tmp
$ rm -rf parent
$ mkdir -p parent/location/businessname/sublocation/hotelname1 \
           parent/location/businessname/hotelname2

$ for depth in 2 1; do
    find parent/location/businessname -mindepth $depth -type d -print0 \
      | while read -d '' dir; do
          echo "$dir"
          mv "$dir" parent/ \
            && rmdir --ignore-fail-on-non-empty $(dirname "$dir")
        done
  done

$ find parent/
parent/
parent/hotelname2
parent/hotelname1
parent/location

यह इस तरह से थोड़ा सा हैक है कि यह sublocation/निर्देशिका को बार-बार निकालने की कोशिश करता है (इसमें मौजूद प्रत्येक होटल के लिए) जब तक कि यह खाली न हो।

यह नाम टकराव से भी नहीं निपटता है - यह किसी दिए गए नाम के साथ पहले होटल को स्थानांतरित करेगा और दूसरों को जगह में छोड़ देगा।

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