Вы можете сделать что-то вроде ниже.
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
Где,
-0Если есть пробелы или символы (включая символы новой строки), многие команды не будут работать. Эта опция заботится об именах файлов с пустым пространством.
-IЗаменить вхождения replace-str в исходных аргументах именами, считанными из стандартного ввода. Кроме того, пробелы без кавычек не заканчивают элементы ввода; вместо этого разделителем является символ перевода строки.
тестирование
Я создал две директории как sourcedirи destdir. Теперь, я создал кучу файлов внутри , sourcedirкак file1.bak, file2.bakиfile3 with spaces.bak
Теперь я выполнил команду как,
find . -name "*.bak" -print0 | xargs -0 -I {} mv {} /destdir/
Теперь, внутри destdir, когда я делаю ls, я мог видеть , что файлы перемещены из sourcedirв destdir.
Рекомендации
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/