Problema absurdo con el find

Tengo un problema al hacer uso del find en linux.
Quiero encontrar todos los archivos que terminan en .log pero el problema viene cuando en el directorio en el que busco hay más de un .log.

Basicamente quiero mover esos archivos a otra carpeta y hago esto:

find . -name *.log -exec mv \{\} prog_log/{\} \; 2> /dev/null;

En cuanto había más de un archivo .log la llamada no hacía absolutamente nada. Al quitarle el desvio del error me sale esto:

find: paths must precede expression
Modo de empleo: find [ruta-de-acceso...] [expresión]

pero el caso sq cuando solo hay un .log funciona perfectamente.

Alguién sabe donde está el problema?

gracias
find . -name '*.log' -exec mv {} prog_log/{} \;


Eso funciona. Pero quizá no haga lo que quieres....

find . -name '*.log' -exec mv {} prog_log/ \;


Quizá quieras eso.

El problema es que *.log se estaba expandiendo antes de la llamada a find.

- ferdy
Gracias tio. Eso no lo ponía en mis apuntes. Ya me podía tirar horas probando xD.

saludos
2 respuestas