
Quiero encontrar todos los archivos .c y .h en mi directorio, excluyendo los que están en las carpetas 'prueba' (hay varias).
El directorio que estoy buscando tiene directorios de prueba como:
myDirectory/abc/def/test
myDirectory/abc/def/ghi/test
etc.
Hasta ahora he probado:
find /myDirectory/* -type d -name test -prune -o -name '*.c' -print
y esto parece funcionar para los archivos .c, pero cuando ejecuto:
find /myDirectory/* -type d -name test -prune -o -name '*.c' -o -name '*.h' -print
no se devuelve nada en absoluto.
¿Cómo incluyo varios tipos de archivos?
Respuesta1
Tienes que agrupar los dos -name
predicados:
find /myDirectory/* -type d -name test -prune -o \( -name '*.c' -o -name '*.h' \) -print
La barra invertida es necesaria para escapar del paréntesis.