find の代わりに locate を使おう
超高速なファイル検索コマンド "locate" がある.
これは
$ find / -name '*a*' -print
と同じ働きをする.findを上記のように使ったことがある人ならわかると思うけど,ものすっごい時間がかかる.
しかし locate だと一瞬.誇張なしで一瞬で終わる.
同じことをしているはずなのに,この差は何?って思うかもしれない.
そのからくりは,あらかじめファイルシステム中の全ファイルをデータベースに記録しておき、そのデータベースを検索しているから.
なので,実際にディレクトリ・ファイルをルートから探しているわけではない.
当然,それがデメリットにもなり,データベースが更新された場合はすぐには反映されない.そのデータベースは,Ubuntu の場合1日に1回更新されるようだ.手動で更新するには
$ sudo updatedb
とする.