どうでもいいツッコミですが。
じゃあどうすればいいんでしょうか。実は、GNU coreutilsのcpやmvにはxargsと組み合わせて使うためのオプションが用意されています。coreutilsのinfoにも書いてありますが、「-t」または「--target-directory」オプションでdestinationのディレクトリを指定できます。
http://openlab.dino.co.jp/2008/02/20/133431188.html
へええ。さすがGNU。
2chに便利なコマンド教えろ的なスレがあるんですけど、xargsがらみだと、ディレクトリをまたいでサイズの大きい順にファイルをlsしたいときに
% find . -type f | xargs ls -lFhS
とかやったりします。
使ってて疑問点といえば、中ではxargs.cのxargs_do_exec()でexecvp(3)してるので、当然ながらシェルのaliasが効かなくてクソーと思うことがよくあります。なんで、上でalias ll='ls -l'な人でも
% find . -type f | xargs ll -FhS
とは書けないんです。これってなんとかならんのですかね。
あと、すっごいたまに、-nを指定しないとARG_MAX越えることがあるんですけど(再現できてない。chmodと合わせるときだったかな)、気のせいなのかなぁ。すっかり -n1000 とか -n10000 とか書くクセがついちゃってます。