Categories: Linux

Linux 使用 locate 尋找檔案教學與範例

介紹如何在 Linux 系統中使用 locate 指令尋找指定的檔案。

安裝 locate 工具

大部分常見的 Linux 發行版都會安裝 locate 工具,如果您的系統上沒有安裝 locate,可以使用 aptyum 來安裝:

# 安裝 mlocate 套件(CentOS/RHEL/Fedora)
sudo yum install mlocate

# 安裝 mlocate 套件(Debian/Ubuntu/Mint)
sudo apt install mlocate

更新 locate 資料庫

當安裝完 locate 工具之後,在使用之前必須執行以下指令更新資料庫:

# 更新 mlocate 資料庫
sudo updatedb

預設的 locate 資料庫檔案位於:

# 查看預設 locate 資料庫檔案
ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root mlocate 78268820  7月 26 00:09 /var/lib/mlocate/mlocate.db

快速尋找檔案

在建立好 locate 資料庫之後,就可以使用 locate 快速尋找系統上的檔案,例如尋找含有 .bashrc 關鍵字的檔案:

# 尋找含有 .bashrc 關鍵字的檔案
locate .bashrc
/etc/bash.bashrc
/etc/skel/.bashrc
/home/chiaujou/.bashrc
/home/myuser/.bashrc
/home/ubuntu/..bashrc.un~
/home/ubuntu/.bashrc
/home/ubuntu/.bashrc~
/snap/core18/2066/etc/bash.bashrc
/snap/core18/2066/etc/skel/.bashrc
/snap/core18/2066/usr/share/base-files/dot.bashrc
/snap/core18/2074/etc/bash.bashrc
/snap/core18/2074/etc/skel/.bashrc
/snap/core18/2074/usr/share/base-files/dot.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

列出符合檔案數量

若要計算符合條件的檔案數量,可以加上 -c 參數:

# 計算含有 .bashrc 關鍵字的檔案數量
locate -c .bashrc
16

不分大小寫

locate 在比對檔案時,預設會區分英文字母的大小寫,若不要區分大小寫,可以加上 -i 參數:

# 不分大小寫
locate -i myfile.txt
/home/ubuntu/myfile.txt
/home/ubuntu/MyFile.txt

指定顯示檔案數量

如果不要顯示全部符合的檔案,只要顯示前幾筆找到的結果,可以加上 -n 參數指定顯示的檔案筆數,例如只顯示找到的前 3 個符合的檔案:

# 只顯示找到的前 3 個符合的檔案
locate -n 3 .bashrc
/etc/bash.bashrc
/etc/skel/.bashrc
/home/chiaujou/.bashrc

跳過已刪除的檔案

由於 locate 是從資料庫中搜尋資料,如果系統上對應的檔案已經刪除了,但資料庫尚未更新,這時候 locate 就有可能列出已經被刪除的檔案。

若要避免 locate 列出已經被刪除的檔案,有兩種方式,第一種就是先手動更新 locate 資料庫之後,再進行搜尋;第二種方式就是加上 -e 參數,跳過已經被刪除的檔案:

# 跳過已經被刪除的檔案
locate -e .bashrc

查看 locate 資料庫狀態

若要查看 locate 資料庫狀態,可以執行 locate 加上 -S 參數:

# 查看 locate 資料庫狀態
locate -S
Database /var/lib/mlocate/mlocate.db:
	492,881 directories
	2,025,853 files
	194,436,807 bytes in file names
	78,268,820 bytes used to store database

使用自訂資料庫

如果要使用自訂的 locate 資料庫,可以使用 -d 指令資料庫的路徑:

# 指定 locate 資料庫路徑為 /path/to/my.db
locate -d /path/to/my.db .bashrc

忽略錯誤訊息

如果希望 locate 在執行時不要顯示錯誤訊息,可以加上 -q 參數:

# 不要顯示錯誤訊息
locate -q .bashrc

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago