Unixシステムでファイルを検索する

Unixシステムでファイルを検索する

[検索と検索]コマンドを使用してファイルを検索します。

locateこのコマンドは高速ですが、slocateデータベースを更新する必要があります。コマンドはfind遅くなりますが、アップデートは必要ありません。

システムを活用しようとしていますprd

誰もが私のシェルスクリプトの初期レベルのユーザーに、より高速で動作するコマンドを提案できますか?

ベストアンサー1

ファイルが 2 ~ 3 個以下にネストされた複数のサブディレクトリにあることを考慮すると、次のような (おそらく) より高速なコマンドを使用できます。

(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)

どういうわけか自分の質問に答えることができる場合は、updatedb以下を使用してください。ポジショニングを加速、よい:

$ updatedb -o /home/rahul/my.db -U /home/rahul/ -e "not/in/this/directory1 not/in/this/directory2"
$ locate -d /home/rahul/my.db            ### point locate to use your db

バラよりデータベースを更新する人助けを求める。


または、@casが提案したように出力をファイルにfindリダイレクトしてgrep繰り返し実行します。プレーンテキストはデータベースよりも多くのスペースを占めますupdatedbが、検索速度ははるかに高速です。

たとえば、

find /path/to/directory > /tmp/files.list
grep -i file.xml /tmp/files.list
grep -i anotherfile.xml /tmp/files.list

おすすめ記事