私は、サーバ上の何百万ものファイルを調べ、与えられた接尾辞でいくつかを見つける必要のある単純なfindコマンドを持っています。ファイルは頻繁に書き込まれ、削除されます。もっと速く見つける方法があるのだろうかと思うだけです。ロケートの使用は非常に高価になるため、ロケートの使用は問題になりません。fast shell find
find /myDirWithThausandsofDirectories/ -name *.suffix
一部のサーバーでは、このコマンドに数日かかることがあります。
どのような考えですか?
おかげで、
あなたができることすべてについてです。 findはディレクトリを繰り返し処理しますが、unixシステム上の 'large'ディレクトリを通過するのは、ディレクトリエントリがどのように格納されるかによって自然に遅くなります。 –
問題を解決しますか? 'find /myDirWith../dira* -name * .suf&find /myDirWith../dirb* -name * .suf ....&'また、 'gnu-parallel'または' xargs -n'を見てください。良い運! – shellter
おそらく、何百万ものファイルとは異なるものがあると良いケースです。 GDBMデータベース、またはMySQLやPostGresQLのような "リレーショナル"データベース、またはmangodbのようなnoSQLのものです。 –