LoginSignup
166
145

More than 5 years have passed since last update.

検索してファイルを消す時に高速に行う方法

Posted at

「プロフェッショナル イチロースペシャル」を見て
真っすぐに自分と向き合う姿にホレた千葉です。

今日は、あるファイルを検索して消す時に、高速になる方法です。

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の記事でも書いてみます。

以上!!

166
145
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
166
145