2012年5月30日水曜日

xargsの使い方

1.標準入力から次々と行を読み込む
2.終端に達するか、コマンドに与えられる引数に等しい数に達するまで続ける
3.読んだデータを引数に与えられたコマンドを起動する
4.標準入力からまだ読めるデータがあれば 1.へ



基本
find . -not -name '*.bz2' | xargs bzip2

応用
find . -not -name '*.bz2' | xargs -L 1 -P 2 bzip2
最大2プロセスで実行し(-P 2)、各プロセスには引数を1つずつ与える(-L 1)。

注意点。
xargsで起動されるコマンドが軽い、かつ引数の数が多い場合、
並列実行によるメリットよりもコマンド起動回数(fork回数)によるデメリットの方が上回る可能性が高い。
-L で指定する数を多くするなどして対処。

参考 thanx
http://d.hatena.ne.jp/tagomoris/20110513/1305267021


見つけたファイルをコピー
find ./ -name '*.txt' | xargs -I % -t cp -p % mydir



0 件のコメント:

コメントを投稿