updatedb 命令構建器
產生 updatedb 指令,用於建立或更新 locate 所使用的檔名資料庫
開始使用 updatedb
## 什麼是 updatedb?
`updatedb` 用於建立或更新`locate`所查詢的檔名資料庫。執行完之後,`locate needle`能在幾毫秒內根據檔名找到對應檔案,這比`find`掃描整個檔案系統快得多。此資料庫會依照預定時間表(通常透過 cron 每天執行)重新建立,但您也可以在大型檔案有變更時立即手動執行它。
## 使用方式
1. **選擇選項**:通常不需要——`sudo updatedb`就是最常見的格式。根據需求可加入`--output`、`--prunepaths`、`--prunefs`、`--database-root`、`--require-visibility`或`-v`。 2. **指定自訂資料庫**(選用):使用`--output`將資料寫入預設的`/var/lib/plocate/plocate.db`或`/var/lib/mlocate/mlocate.db`以外的位置。 3. **複製並執行**:在指令前加上`sudo`,如此掃描時就能遍歷所有目錄。
常見選項
### `-v` 詳細模式 在掃描時直接列印路徑——這有助於確認資料庫確實正在被重建。
### `--output=FILE` 自訂資料庫 將索引寫入特定路徑:`updatedb --output=/tmp/mydb.db`,然後使用`locate -d /tmp/mydb.db pattern`來查詢它。
### `--prunepaths='DIRS'` 跳過資料夾 從掃描中排除某些路徑,使其不會出現在`locate`的結果中:`updatedb --prunepaths='/tmp /var/tmp /mnt/backup'`。
### `--prunefs='FSTYPES'` 跳過檔案系統 跳過如`nfs`或`tmpfs`這類整個檔案系統類型,以避免對網路或暫時掛載的檔案系統進行索引:`updatedb --prunefs='nfs tmpfs'`。
### `--database-root=PATH` 掃描根目錄 將子樹視為檔案系統的根目錄來建立索引——這對於建立chroot環境或已掛載映像檔的資料庫非常有用。
### `--require-visibility` 權限過濾 記錄索引建立者能看到的檔案,並將其餘檔案對`locate`隱藏。plocate預設為關閉此功能(僅對全世界可讀的路徑進行索引);mlocate則預設為開啟。
▶為何「定位」無法找到我剛建立的檔案?
▶mlocate 與 plocate — 兩者有什麼差異?
▶為何我需要 sudo 才能執行 updatedb?
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。