कैसे करें 'खोज' वर्तमान निर्देशिका को वापस नहीं


11

मैं वर्तमान में find(और प्रतिलिपि) सभी फ़ाइलों और फ़ोल्डर संरचना को एक विशिष्ट निर्देशिका में, एक निर्दिष्ट निर्देशिका में मिलान करने और करने की कोशिश कर रहा हूं और मैं लगभग वहां हूं!

विशेष रूप से, मैं एक निर्दिष्ट पथ से '_' वर्ण के साथ भीख नहीं देने वाले सभी फ़ोल्डरों की पुनरावृत्ति करना चाहता हूं।

find /source/path/with/directories -maxdepth 1 -type d ! -name _\* -exec cp -R {} /destination/path \;

/ स्रोत / पथ / के साथ / निर्देशिका / पथ मशीन-विशिष्ट निर्देशिका हैं जो '_' और अन्य के साथ शुरू होती हैं, और मैं केवल दूसरों की प्रतिलिपि बनाने में रुचि रखता हूं। मेरे से परे एक कारण के लिए, खोज आदेश / स्रोत / पथ / / निर्देशिका / निर्देशिका के साथ देता है, और इसलिए इसकी सामग्री की प्रतिलिपि बनाता है, जिसमें '_' के साथ भीख मांगने वाली निर्देशिकाएं शामिल हैं।

किसी को भी एक संकेत है कि क्यों है?

धन्यवाद,

पास्कल


जवाबों:


14

findरूट पथ लौटाता है क्योंकि यह आपके मानदंडों से मेल खाता है - अर्थात यह एक निर्देशिका है, और यह इसके साथ शुरू नहीं होता है _

आप देख रहे हैं -mindepth 1, मुझे संदेह है:

$ cd /tmp
$ mkdir a
$ touch a/b
$ mkdir a/c
$ touch a/c/d
$ find a
a
a/b
a/c
a/c/d
$ find a -mindepth 1
a/b
a/c
a/c/d

संदर्भ: मैनपेज खोजें


अति उत्कृष्ट! जैसा मैं चाहता था वैसा ही काम करता है। मैं इसे जोड़कर काम कर रहा था! -नाम 'फाइलें' लेकिन यह मेरे लिए गलत लगा ...
पिनपिन

0

से बदलें:

find /source/path/with/directories ...

सेवा:

(shopt -s dotglob; find /source/path/with/directories/* ... )

वह तरीका /source/path/with/directoriesशामिल नहीं होगा।

ऐसा shopt -s dotglobहै कि *एक .(छिपी हुई फ़ाइलें, निर्देशिका) के साथ शुरू होने वाली फ़ाइलों और निर्देशिकाओं से भी मेल खाएगा ।

और पूरी चीज उप-शेल में लपेटी गई है (...), shoptकेवल उप-शेल के भीतर के प्रभाव को सीमित करने के लिए , अन्यथा आपको बाद में इसे पूर्ववत करना होगा shopt -u dotglob


इसके साथ शुरू होने वाली निर्देशिका प्रविष्टियों के लिए विफल हो जाएगा .। कोशिश मत करो .*, या तो, या आप एक पूरी तरह से दूसरे सामान से मेल खाएंगे जिसका आप कभी इरादा नहीं करते हैं। ;-)
Zigg

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