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
2012年5月30日水曜日
xargsの使い方
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿