Excluir un directorio cuando haces búsquedas en Linux
Ya he comentado sobre cómo localizar ficheros en tu distro Linux de una forma fácil y rápida en otras ocasiones. Pero las búsquedas son un tema importante, algo que se suele hacer casi a diario y que en ocasiones se necesita una mayor precisión para encontrar rápido lo que quieres.
En ocasiones, cuando se ejecuta un comando para la búsqueda, lo que ocurre es que se intentará localizar aquello que intentas mientras el programa ejecutado hace un barrido de todos los directorios y ficheros que hay en la zona donde te encuentres realizando las búsquedas. El problema viene cuando se trata de una partición o directorio grande, lo que retrasa bastante el resultado…
Para evitar eso, se pueden hacer algunas cosas, como excluir algún directorio de la búsquedas para que no interfiera en el tiempo. Y para eso, también vamos a usar el comando find, como en el otro tutorial que dejé hace tiempo en LxA y que cité en el enlace del primer párrafo.
Pues bien, para excluir un directorio de las búsquedas y ahorrar tiempo, lo que puedes hacer es usar la opción -prune de find. Por ejemplo, imagina que quieres localizar un fichero llamado lxa con cualquier extensión en el directorio actual, pero que quieres buscar en todos los lugares menos en el directorio llamado prueba, ya que sabes que en él no va a estar. Entonces, deberías ejecutar lo siguiente:
find . -path './prueba' -prune -o -name 'lxa.*'
Ese decir, en este caso se le está pidiendo a find que localice en el directorio actual (.), los ficheros llamados lxa con cualquier extensión pero, en este caso, que se excluya el directorio ./prueba.
Como ves, find es un comando bastante poderosos para localizar, pero presenta cierta dificultad dado el gran número de opciones y parámetros que puede aceptar para filtrar las búsquedas…