Если вы действительно хотите выполнить только одну команду, почему бы не использовать одну из них и запустить ее? Вот так:
$ find /foo -name '*.txt' | xargs echo | sed -e 's/^/cp /' -e 's|$| /dest|' | bash -sx
Но это не будет иметь большого значения с точки зрения производительности, если вы не будете делать это много или у вас будет куча файлов. Будьте осторожны с именами сговоров, однако. При тестировании я заметил, что GNU cp как минимум предупреждает о коллизиях:
cp: will not overwrite just-created `/dest/tubguide.tex' with `./texmf/tex/plain/tugboat/tubguide.tex'
Я думаю, что самый чистый:
$ find /foo -name '*.txt' | xargs -i cp {} /dest
Меньше синтаксиса для запоминания, чем параметр -exec.