LinuxParty
Buscando con el comando find, puede que no queramos incluir algunos directorios en esa búsqueda, la razón principal para excluir la búsqueda, es porque se sabe o conoce que ahí, no están los ficheros que deseamos encontrar, por lo que lo más seguro es descartar la ruta, para acelerar la búsqueda y se más clara y concisa el resultado de la búsqueda. Vamos a poner algunos ejemplos.
Estoy buscando archivos de tipo 'test*' dentro de un repositorio. Dado que tengo un virtualenv, cada vez que hago find -name 'test*' me encuentra muchos archivos de los módulos que tengo instalados.
find -name 'test*'
Devuelve muchas cosas del tipo:
./env/lib/python3.5/site-packages/paquete/utils/tests
¿Cómo puedo excluir un directorio y todo su contenido de los resultados de find?
Debes utilizar la sintaxis -not -path para indicar el directorio a excluir:
find -name 'test*'-not -path "./env/*"
Nótese que al escribir el directorio debes añadir un asterisco para que interprete que es todo su contenido. Esto es, find -name 'test*' -not -path "./env/" solo excluirá el directorio, mientras que "./env/*" excluirá todo su contenido (recursivamente).
Como siempre, recuerda que la opción -type te permite restringir por tipo: archivo, directorio... Por ejemplo, esto buscará solamente los archivos:
find -type f -name 'test*'-not -path "./env/*"



