xargs

どうでもいいツッコミですが。

じゃあどうすればいいんでしょうか。実は、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 とか書くクセがついちゃってます。