2010-12-17 15 views
8
find . \ 
    -name 'user_prefs' \ 
    -exec echo "whitelist_from [email protected]" >> {} \;' 

मैं सभी फ़ाइलें find से पाए जाते हैं करने के लिए लाइन whitelist_from [email protected] जोड़ना चाहते हैं, लेकिन मेरे आदेश काम नहीं करता। यह सिर्फ '{}' फ़ाइल बनाता है।बैश,, खोजने के कार्यकारी और गूंज

जोर से मैं for कमांड का उपयोग करता हूं?

धन्यवाद!

उत्तर

10

आप से बचने के लिए है '>>', इस तरह उदाहरण के लिए:

find . -name 'user_prefs' -exec sh -c 'echo "whitelist_from [email protected]" >> {}' \; 
+0

यह काम करता है! बहुत धन्यवाद :-) – Roberto

+1

यह एक सही उत्तर है, लेकिन मैं इसे बिल्कुल "भागने" नहीं कहूंगा। –

+0

यह CentOS 5 पर काम करता है। धन्यवाद! –

4

जैसा कि पहले ही कहा, xargs का उपयोग कर प्रोत्साहित किया जाता है, लेकिन आप यह भी द्वारा कई बार क्रियान्वित श बच सकते हैं:

find . -name 'user_prefs' | while read filename; do echo "whitelist_from [email protected]" >>"$filename"; done 
+0

यह 'xargs' संस्करण की तुलना में काफी तेज है। –

+1

वास्तव में मुझे इसे मेरे स्वीकृत समाधान से बेहतर पसंद है :) –

संबंधित मुद्दे