標準出力を引数としてコマンドを実行する(xargs)
何を言っているのか自分でもよく分からないですが、例えば
#ls -1 a1.txt a2.txt a3.xls a4.xls
というようにファイルがあって、これらを全て消したい場合、
# rm -rf ./*
でも良いんですが、これでも可能です。
# ls -1|xargs rm -rf
別に使わなくてもいいじゃん、とか思いますが、これが便利なのです。例えば*.xlsだけ消したいときは、
# find . -name "*.xls"|xargs rm -rf
とすれば良いのです。これは便利。ファイルが多ければ多いほど効果を発揮します。
ちなみに、標準出力は行ごとに処理するようなので、ls -1でもfindでもいいでしょう。
Perlでやるとこんな感じ。この方がより複雑な事が出来るので、良い感じです。
# ls | perl -nle 'printf "cp %s /var/tmp \n",$_'| sh -x
活用してみようー。
ではー。