在linux上安裝了某個應用時,是否會偶爾找不到應用的某些文件位置???
可以通過find命令查找,但是也可以通過whereis,which來快速定位。
whereis可以定位二進制文件,源文件,說明文件,查找時不需要文件的前置路徑和后置擴展,whereis會嘗試在標準的linux位置,$PATH 和 $MANPATH中定位我們想要的程序。并且whereis可以同時分別查找多個文件。例如, 在man whereis
有如下例子,
tangs@ubuntu:~$ whereis -bm ls tr -m gcc
ls: /bin/ls /usr/share/man/man1/ls.1.gz
tr: /usr/bin/tr /usr/share/man/man1/tr.1.gz
gcc: /usr/share/man/man1/gcc.1.gz
linuxwhich命令安裝。這就是查找ls,tr的二進制文件路徑和說明文件路徑,同時只查找gcc的說明文件路徑。
whereis提供以下可輸入參數:
參數 | 說明 |
---|---|
-b | 查找二進制位文件 |
-m | 查找說明文件 |
-s | 查找源文件 |
-u | 只顯示有不尋常的條目的命令;如果一個命令對于一個明確的請求類型不是只有一個條目(即0和多個),則稱這個命令是不尋常的。 |
-B directory | 指定目錄查找二進制文件 |
-M directory | 指定目錄查找說明文件 |
-S directory | 指定目錄查找源文件 |
-f | 將需要查找的路徑和需要查找的命令隔開,必須和 -B,-M,-S 一起使用 |
-l | 列出whereis查找命令時的有效的查找路徑 |
-h | 查看幫助信息 |
-V | 查看版本信息 |
以上參數中值得注意的是-f
參數,它的原文解釋為:
Terminates the directory list and signals the start of filenames. It must be used when any of the -B, -M, or -S options is used.
linux與unix,但是一些blog和教程網站的解釋為不顯示文件名前的路徑名稱
,如下圖,我是覺得他們都解釋錯了。這應該是解釋為在使用 -B,-M,-S時指定的路徑是多個,查找的文件也是多個,那就需要一個-f
參數將 查找的路徑和查找的文件隔開,形如:
# where -BMS 目錄 -f 文件名
tangs@ubuntu:/bin$ whereis -S /bin/ /usr/local -f ls ps
ls: /bin/ls /usr/share/man/man1/ls.1.gz /bin/ls
ps: /bin/ps /usr/share/man/man1/ps.1.gz /bin/ps
which是一個很簡單的命令,它就是在當前環境變量中查找可被執行文件或者可被執行文件鏈接的路徑,最終就是在$PATH中查找路徑,whereis命令已經可以做到這一點了。
實例:
tangs@ubuntu:/bin$ which ls ps
/bin/ls
/bin/ps
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态