También podrías hacer algo como a continuación.
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
Dónde,
-0
Si 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.
-I
Reemplace 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 sourcedir
y destdir
. Ahora, creé un montón de archivos dentro sourcedir
como file1.bak
, file2.bak
yfile3 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 sourcedir
a destdir
.
Referencias
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/