Digamos que puede haber cientos de *.txtarchivos en un directorio. Solo quiero encontrar los primeros tres *.txtarchivos y luego salir del proceso de búsqueda.
¿Cómo lograr esto usando la findutilidad? Tuve un rápido en su página de manual, no parecía una opción para esto.

find . -name '*.txt' -print -quitmostrar la primera coincidencia y dejarfindsalir después de la primera coincidencia. No sé si es posible adaptarse al caso "salir después de encontrar n coincidencias".Respuestas:
Puede canalizar la salida de a
findtravés dehead:fuente
headse inicia y espera la entrada desde el lado izquierdo de la tubería. Luego sefindinicia y busca archivos que coincidan con los criterios especificados, enviando su salida a través de la tubería. Cuandoheadha recibido e impreso el número de líneas solicitadas, finaliza y cierra la tubería.findnota la tubería cerrada y también termina. Simple, elegante y eficiente.-n 3es compatible con POSIX y, por lo tanto, es probable que sea más portátil.Esta otra respuesta es algo defectuosa. El comando es
Luego hay una explicación en uno de los comentarios [énfasis mío]:
Esto es casi cierto.
El problema es que se
findda cuenta de la tubería cerrada solo cuando intenta escribir en ella, en este caso es cuando se encuentra la cuarta coincidencia. Pero si no hay cuarto partidofind, continuará. ¡Tu caparazón esperará! Si ocurre en un script, el script esperará, a pesar del hecho de que ya sabemos que la salida de la tubería es final y no se le puede agregar nada. No tan eficiente.El efecto es insignificante si este particular
findtermina rápidamente por sí mismo, pero con una búsqueda compleja en un gran árbol de archivos, el comando puede retrasar innecesariamente lo que quiera hacer a continuación.La solución no tan perfecta es correr
De esta manera, cuando
headsale, el shell continúa de inmediato. Elfindproceso en segundo plano puede ser ignorado entonces (saldrá tarde o temprano) o apuntado conpkillo algo.Para probar el concepto que puede buscar
/. Esperamos una sola coincidencia, pero lafindbusca en todas partes y puede llevar mucho tiempo.Termine con Ctrl+ Ctan pronto como vea el problema. Ahora compara:
fuente