[検索と検索]コマンドを使用してファイルを検索します。
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