Necesito eliminar recursivamente todos los archivos en todos los subdirectorios donde el nombre de archivo contiene un número seguido de una 'x' seguida de un número, al menos dos veces.
Ejemplo:
Me gustaría eliminar estos archivos:
'aaa-12x123-123x12.jpg'
'aaa-12x12-123x12-12x123.jpg'
Pero NO quiero eliminar estos archivos:
'aaa.jpg'
'aaa-12x12.jpg'
'aaaxaaa-123x123.jpg'
'aaaxaaa-aaaxaaa.jpg'
¿Cómo puedo hacer eso (desde el shell bash)

-deletetampoco-exec rmtrabajado para mí en Bash en Windows. Pero esto hizo:find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' | xargs rm-print0yxargs -0, de lo contrario, el comando fallará con los nombres de archivo que contienen espacios o comillas simples. Sin embargo,-deletey-exec rmhacer el trabajo en Windows. Si algo no funciona, no se debe a su uso.find, así que asegúrese de que las utilidades de Unix sean las primerasPATH.El comando correcto es:
find . -type f -iregex '.*[0-9]x[0-9]*\.jpg$'esto tomará solo archivos con nombres: 'aaa-12x12.jpg', pero no 'aaa-12x12red.jpg'
fuente