「プロフェッショナル イチロースペシャル」を見て
真っすぐに自分と向き合う姿にホレた千葉です。
今日は、あるファイルを検索して消す時に、高速になる方法です。
##find + xargs = 高速
速い
find /XXXX/XXXX/*.txt -type f | xargs rm -rf
遅い
find /XXXX/XXXX/*.txt -type f -exec rm -rf {} ¥;
消すファイル数が多ければ多い程、xargsを使った方が速い。
なぜなら、
「-exec」を使用すると、内部的には見つけたファイルに対して毎回rmを行う。
「xargs」を使用すると、内部的にはコマンド1発で終了。
例えば、
###「-exec」
find /XXXX/XXXX/*.txt -type f -exec rm -rf {} ¥;
は、内部的にはこう
rm aaa.txt
rm bbb.txt
rm ccc.txt
rm ddd.txt
「xargs」
find /XXXX/XXXX/*.txt -type f | xargs rm -rf
は、内部的にはこう
rm -rf aaa.txt bbb.txt ccc.txt ddd.txt
コマンド一発で終わるか、沢山コマンドを発行するかの違い。
これが、100万ファイルが対象だった場合はかなりの時間差になる。
xargsコマンドは、かなり便利なので覚えておくと特をすると思います。
他にもxargsは色々使えます。標準出力をコマンドに渡せるので。
現場でもよく使います。
次は、色々な使えるxargsの記事でも書いてみます。
以上!!