[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Línea de comandos



On Fri, Feb 27, 2009 at 09:48:16AM -0800, Carmen Marcela Alegria C. wrote:
> Esta bien interesante el tema, a mi me gusta mucho el poder de la linea de comando ;)
> 

> 3) find . -type f -iname '*.htm*' -print0 | xargs -0 grep -il body
> es bueno, pero es realmente necesario que se haga otro proceso
> por el | para hacerle el grep? no seria mejor hacer:
> 
> find . -type f -iname '*.htm*' -print0  -exec grep -il body {} \;

Hacer
 find ... | xargs grep ...
crea 
 1 proceso para el find
 1 proceso para el xargs
 1 proceso grep (a menos que hayan muchos cientos de archivos a revisar, en
 cuyo caso creará 1 grep para cada varios cientos)

es decir, 3 en total.

Por otro lado,
 find ... -exec grep ...
crea
 1 proceso para find
 1 proceso grep *para cada archivo que encuentra*

es decir, te ahorras 1 proceso por el xargs, y lo cambias por decenas
o cientos de greps. La ventaja de -exec es que se puede usar cuando lo
que quieres ejecutar requiere el nombre del archivo antes del final de
la lista de argumentos. Ejemplo: Mover todos los .jpg creados hace más
de cierto tiempo, todos a un mismo directorio final.


 $ find . -name '*jpg' -cmin +600 -exec mv \{} directorio_destino \;

y no podemos usar xargs aquí, por que directorio_destino tiene que ir
*después* del archivo a mover.


Reply to: