"Excluir os arquivos do diretório de origem" geralmente é traduzido como mv . Infelizmente mv não tem uma opção como --parent . A solução mais fácil com cp é provavelmente: Chame cp uma vez para cada arquivo. Ineficiente, mas fácil de codificar:
find . -type f \
-name '*.xxx' -exec cp -iv --parents {} /path/to/target_dir \; -delete
O arquivo é excluído se cp sair com êxito. -delete pode ser específico para o GNU find .