Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

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

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

以上!!

iron-breaker
周りがAmazon
classmethod
AWSを中心にビッグデータ/スマホアプリ開発/Alexaスキル開発/IoT/サーバレス開発など、モダンなテクノロジーを使った事業を積極的に推進している会社です。
https://classmethod.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away