Используйте find
с параметром exec
, но сначала создайте целевую папку.
mkdir -p /home/somewhere/else
find /somewhere -iname "*.xxx"
Это перечислит все, что будет перемещено. Теперь, если вы уверены, что это файлы, которые вы хотите переместить, выполните следующее:
find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;
В строке exec
'{}'
будет заменено фактическим именем файла, и оно будет перемещено к цели. Точно так же, чтобы скопировать, просто mv
на cp
. \;
необходимо завершить команду.
Если вам нужно подтверждение перед каждой файловой операцией, которая перезаписывает уже существующий файл, вы можете добавить опцию -i
после mv
или cp
соответственно.
Нет необходимости в grep
, xargs
и их лайках . Это излишне усложнит вещи.