私の友人はIT会社に勤務しており、ディレクトリ(サブディレクトリを含む)内のXMLファイルの数を数える必要があります。
ただし、ファイル数は数百万に達するため、それを使用するか、同様の計算を実行するのにls -LR | grep .xml
多くの時間がかかります。
より良い方法が何であるか疑問に思います。
新しいファイルが作成されるか、変更時間が変わるたびにカウンタ(ファイル数)に影響を与えるように、バックグラウンドプロセスの一種はそれを処理できますか?
ベストアンサー1
説明するデーモンは次のように動作します。inotify。
しかし、たぶん使用するfind
のはwc -l
十分速いでしょうか?
簡単なテストのみを実行してみましたが、私のシステムではtime ls -lR /mm/|grep -c jpg
(real 0m2.168s
)と()time find /mm -type f -name \*jpg|wc -l
の間にかなりの違いがあります。real 0m0.397s
どちらも約42,000個のファイルを返すため、大きなディレクトリの場合は違いが大きくなる可能性があります。
(ディスクキャッシュ効果を排除するために、2つのコマンドを複数回実行しました。)