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: