updatedb コマンドは、locate コマンドが利用する ファイルパスのデータベースを更新 するためのコマンドです。
通常は自動で更新されますが、手動で最新の状態に反映したい場合に利用します。
構文(Syntax)
updatedb [オプション]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-l | ファイルシステムごとにセキュリティ制限を適用(デフォルト有効) | sudo updatedb -l 0 |
-o FILE | データベースの出力先を指定 | sudo updatedb -o /tmp/mlocate.db |
-U PATH | 指定ディレクトリを検索対象のルートに指定 | sudo updatedb -U /home |
-e PATH | 特定のディレクトリを検索対象から除外 | sudo updatedb -e /mnt |
-f FS | 特定のファイルシステムを除外 | sudo updatedb -f nfs |
-v | 進行状況を表示 | sudo updatedb -v |
※ 多くの環境では /etc/updatedb.conf に除外設定が記述されています(例: /tmp, /var/tmp, /proc など)。
実行例
データベースを更新
sudo updatedb
/home 以下のみを対象にデータベース作成
sudo updatedb -U /home
/mnt ディレクトリを除外して更新
sudo updatedb -e /mnt
データベースを /tmp/mlocate.db に保存
sudo updatedb -o /tmp/mlocate.db
更新状況を表示しながら実行
sudo updatedb -v
エラー例(一般ユーザーで実行)
updatedb
出力例:
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
関連コマンド
locate: 更新したデータベースを利用して高速検索find: 実際のファイルシステムを検索(遅いが常に最新)grep: ファイル内容の検索
備考
updatedbの実行には通常 root 権限 が必要です。- 多くのディストリビューションでは cron や systemd タイマーで自動実行されるため、手動で実行するのは即時反映したいときだけです。
- データベースの保存場所は通常
/var/lib/mlocate/mlocate.dbですが、実装(mlocate, plocate など)によって異なる場合があります。
参考
- manページ: man7.org updatedb(8)
- GNU findutils: https://www.gnu.org/software/findutils/

コメント