ファイルの文字コード一括変換

% find . -name "*.txt" | xargs -t -I % -R 1 -- nkf --oc=UTF-8 --overwrite=".bak" %

-t    実行するコマンドを表示             
-I %  % が置換される                     
-R 1  置き換えられる引数の数             
--    xargsの引数がこれで終わることを示す


たぶん昔xargsすごいよ!みたいなエントリーがあったような気がしたんだけどようやく使い方を把握。昔だったらfor文使ってたと思う。
ちなみにこの方法だと1つずつコマンド実行するのでcpとかは次のようにした方が効率がいいはず。


(例)カレントディレクトリ以下の大文字で始まるファイル・ディレクトリをコピー (manより

% ls -1d [A-Z]* | xargs -J % cp -rp % destdir