Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux whereis 指令精通:快速定位二進制、原始碼與手冊頁

編輯:關於 Linux

whereis 專門搜尋預定義目錄下的可執行檔、原始碼、man pages,速度遠快於 find,適合「已知程式名、找安裝位置」的場景。

核心差異:whereis vs find vs locate

指令搜尋範圍速度即時性適用場景
whereis預設系統目錄(/bin, /usr/bin, /usr/share/man 等)極快即時找指令安裝路徑、man page
locate全檔案系統資料庫 (/var/lib/mlocate/mlocate.db)極快每日更新模糊檔名搜尋
find即時遍歷磁碟慢完全即時複雜條件、屬性、時間篩選

語法與參數

whereis [-bmsu] [-BMS 目錄] -f 檔名
參數功能
-b只找二進制檔
-m只找 man page
-s只找原始碼
-u找非標準類型(非上述三類)
-B 目錄指定二進制搜尋路徑
-M 目錄指定 man page 搜尋路徑
-S 目錄指定原始碼搜尋路徑
-f分隔選項與檔名(多檔名時必須)

實戰範例

1. 完整查詢

$ whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx/modules /etc/nginx /usr/share/man/man8/nginx.8.gz

2. 只找二進制

$ whereis -b nginx
nginx: /usr/sbin/nginx /usr/lib/nginx/modules

3. 只找 man page

$ whereis -m nginx
nginx: /usr/share/man/man8/nginx.8.gz

4. 多檔名查詢

$ whereis -f -b ls cp mv
ls: /usr/bin/ls
cp: /usr/bin/cp
mv: /usr/bin/mv

5. 自訂搜尋路徑

$ whereis -B /opt/myapp/bin -f -b mycmd
mycmd: /opt/myapp/bin/mycmd

輸出解讀

關鍵字: 路徑1 路徑2 ...
# 範例:
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
# 依序:二進制、二進制(其他)、man page

限制與注意事項

  • 只搜尋「硬編碼」的標準目錄,/opt、/home、自訂前綴目錄預設不包含
  • 無法搜尋一般資料檔、設定檔、日誌檔
  • 資料庫非即時更新(雖比 locate 即時,但新安裝套件可能需 updatedb 或重新登入)
  • 不支援萬用字元,* 需搭配 find 或 locate

進階技巧

# 結合 which:which 只顯示 PATH 中第一個,whereis 列出所有
$ which python3
/usr/bin/python3
$ whereis -b python3
python3: /usr/bin/python3 /usr/bin/python3.11 /usr/lib/python3.11

# 腳本中驗證指令是否存在
if whereis -b "$CMD" | grep -q "/"; then
    echo "$CMD 可用"
fi

善用 whereis 秒級定位指令全貌,配合 which/type/find 組成完整搜尋工具鏈。

Copyright © Windows教程網 All Rights Reserved