Você poderia fazer algo como abaixo também.
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
Onde,
-0
Se houver espaços em branco ou caracteres (incluindo novas linhas), muitos comandos não funcionarão. Esta opção cuida dos nomes dos arquivos com espaço em branco.
-I
Substitua ocorrências de replace-str nos argumentos iniciais pelos nomes lidos na entrada padrão. Além disso, espaços em branco não citados não finalizam itens de entrada; em vez disso, o separador é o caractere de nova linha.
Testando
Eu criei dois diretórios como sourcedir
e destdir
. Agora, eu criei monte de arquivos dentro sourcedir
de file1.bak
, file2.bak
efile3 with spaces.bak
Agora, eu executei o comando como,
find . -name "*.bak" -print0 | xargs -0 -I {} mv {} /destdir/
Agora, dentro do destdir
, quando eu faço ls
, pude ver que os arquivos foram movidos de sourcedir
para destdir
.
Referências
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/