UNIX/Linuxの部屋 コマンド:locate

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド locate ファイルをデータベースから検索する。 このエントリーをはてなブックマークに追加

例えば locate a は
% find / -name '*a*' -print
と同じ働きをする。つまり、全ファイルシステムの中から、a という文字を含むファイル・ディレクトリ名を検索し、表示する。

しかし find と違い、locate はその場でディレクトリを検索するのではないので検索時間がかからない。あらかじめファイルシステム中の全ファイルをデータベースに記録しておき、そのデータベースを検索するので、数秒で検索が終了する。欠点は、データベースが更新された後にファイルの移動などをした場合、その情報がデータベースに反映されないことである、

FreeBSD の場合は、/etc/periodic/weekly/310.locate というスクリプトが週に1回実行され、その中で /usr/libexec/locate.updatedb が呼ばれて/var/db/locate.database が更新される。つまり週に一度だけデータベースが更新されることになる。なお、/etc/periodic/ を実行するのは cron デーモンである。

OS インストール直後はデータベースファイルが作成されていないので、直接 /usr/libexec/locate.updatedb を実行すればよい。本当は nobody 権限で実行するのが一番よいが、locate.updatedb(8) を参照。

なお、/etc/locate.rc を書き換えることで、あるディレクトリ以下は検索対象に含めない、という設定をすることもできる。
>> FreeBSDオンラインマニュアル(man) FreeBSD locate(1)

読み方 locate (UNIXコマンド) [ろーけいと] [ろうけいと] このエントリーをはてなブックマークに追加

ファイル名の一部を与えるとフルパスを探すコマンド。locate は「場所を見つける」「探す」という英単語。