निम्नलिखित कुछ ऐसा है जो मैं उसके बाद कर रहा हूं, लेकिन मेरा कोड काम नहीं करता है, चाहे मैं कैसे बचूं {}
और कैसे बचूं+
;
find ./ -maxdepth 1 -type d -name '.*' -exec \
find {} -maxdepth 1 -type f -name '*.ini' -exec \
md5sum \{\} \\; \;
इसे देखने के बाद और - - यूनिक्स लिनक्स सवाल है, मैं उस निम्नलिखित कोड काम करता मिला, लेकिन यह नेस्टिंग नहीं है खोजने जैसे, और मुझे लगता है वहाँ इस विशेष काम करने के लिए एक बेहतर तरीका है।
find ./ -maxdepth 1 -type d -name '.*' \
-exec bash -c 'for x; do
find "$x" -maxdepth 1 -type f -name "*.ini" \
-exec md5sum \{\} \;; \
done' _ {} \+
क्या कोई ऐसा तरीका है find -exec
जो बिना खोल के घोंसला बनाने की आवश्यकता है (जैसा कि ऊपर है), इसके सभी अजीब उद्धरण और बाधाओं से बचने के लिए?
या क्या यह अपने कई मापदंडों के मिश्रण का उपयोग करके सीधे एकल खोज कमांड में किया जा सकता है?
find
, लेकिन अगर find
आप ऐसा नहीं कर सकते हैं, तो उपकरण के रूप में find
इतना श्रद्धेय (?) क्यों है ? फ़ाइलों को खोजने के लिए उपयोग करें? ... मैंने subseqeuntly पाया है कि find ./ -maxdepth 2 -path '.*/*.ini' -type f -exec md5sum {} \+
मेरी स्थिति में ठीक काम करता है (jw013 के संदर्भ -prune
ने मुझे मैन पेज में इसे आगे बढ़ाया ), लेकिन मुझे आश्चर्य है कि अगर यह एक मजबूत तरीका है (जेनेरा में)। मैंने वास्तव में कभी भी find
(लिनक्स के एक वर्ष से कम समय में) उपयोग नहीं किया है, जैसा locate
कि लगभग सभी को मेरी ज़रूरत है, इसलिए यह अज्ञात क्षेत्र है।
-path
परीक्षण वास्तव में क्या मैं सुझाव लिए जा रहा था है। इसके साथ, आपको वह सब करने में सक्षम होना चाहिए जो आप चाहते हैं (बेस एसोसिएशन के ऐस के लिए खेद है;))