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

Ben find tarafından bulunan tüm dosyalara hattını whitelist_from [email protected] eklemek istiyorum yankı ama benim komut çalışmıyor. Sadece '{}' dosyasını oluşturur.bash, bulmak exec ve

for komutunu kullanabilir miyim?

Teşekkürler!

cevap

10

Kaçmak zorunda '>>' böyle örneğin:

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

işe yarıyor! çok teşekkürler :-) – Roberto

+1

Bu doğru bir cevap, ama ben tam olarak "kaçma" diyemem. –

+0

CentOS 5'te çalışır. Teşekkürler! –

4

olarak teşvik edilmektedir xargs kullanarak, zaten söyledi, ama aynı zamanda SH defalarca yürütme önleyebilirsiniz:

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

Bu, 'xargs' sürümünden biraz daha hızlıdır. –

+1

Aslında, kabul ettiğim çözümden daha çok beğendim :) –