Muchas veces tengo que trabajar con directorios que contienen cientos de miles de archivos, haciendo coincidencia de texto, reemplazando, etc. Si voy a la ruta estándar de, por ejemplo¿Cómo manejas el problema "Demasiados archivos" cuando trabajas en Bash?
grep foo *
consigo el mensaje de error demasiados archivos, por lo que termino haciendo
for i in *; do grep foo $i; done
o
find ../path/ | xargs -I{} grep foo "{}"
pero estos son menos óptimo (cree un nuevo proceso grep por cada archivo).
Esto parece más una limitación en el tamaño de los argumentos que los programas pueden recibir, porque el * en el bucle for funciona bien. Pero, en cualquier caso, ¿cuál es la forma correcta de manejar esto?
PD: No me digas que haga grep -r en cambio, lo sé, estoy pensando en herramientas que no tienen una opción recursiva.
¡Un gran consejo! Nunca supe de la opción "+". – mhawke