También podrías hacer algo como a continuación.
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
Dónde,
-0Si hay espacios o caracteres en blanco (incluidas las nuevas líneas), muchos comandos no funcionarán. Esta opción se ocupa de los nombres de archivos con espacio en blanco.
-IReemplace las ocurrencias de replace-str en los argumentos iniciales con nombres leídos de la entrada estándar. Además, los espacios en blanco sin comillas no terminan los elementos de entrada; en cambio, el separador es el carácter de nueva línea.
Pruebas
Creé dos directorios como sourcediry destdir. Ahora, creé un montón de archivos dentro sourcedircomo file1.bak, file2.bakyfile3 with spaces.bak
Ahora, ejecuté el comando como,
find . -name "*.bak" -print0 | xargs -0 -I {} mv {} /destdir/
Ahora, dentro de destdir, cuando lo hago ls, puedo ver que los archivos se han movido de sourcedira destdir.
Referencias
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/