whereis 命令可以幫助用戶尋找某一命令的二進(jìn)制文件,源碼以及幫助頁(yè)面。下面是它的格式:
whereis [options] [-BMS directory... -f] name...
這是這一命令的 man 頁(yè)面給出的解釋:
whereis 可以查找指定命令的二進(jìn)制文件、源文件和幫助文件。 被找到的文件在顯示時(shí),會(huì)去掉主路徑名,然后再去掉文件的(單個(gè))尾部擴(kuò)展名 (如: .c),來源于源代碼控制的 s. 前綴也會(huì)被去掉。接下來,whereis 會(huì)嘗試在標(biāo)準(zhǔn)的 Linux 位置里尋找具體程序,也會(huì)在由 $PATH 和 $MANPATH 指定的路徑中尋找。
下面這些以 Q&A 形式出現(xiàn)的例子,可以給你一個(gè)關(guān)于如何使用 whereis 命令的直觀感受。
1.如何用 whereis 命令尋找二進(jìn)制文件所在位置?
假設(shè)你想找,比如說,whereis 命令自己所在位置。下面是你具體的操作:
whereis whereis

需要注意的是,輸出的第一個(gè)路徑才是你想要的結(jié)果。使用 whereis 命令,同時(shí)也會(huì)顯示幫助頁(yè)面和源碼所在路徑。(如果能找到的情況下會(huì)顯示,但是在這一例中沒有找到)所以你在輸出中看見的第二個(gè)路徑就是幫助頁(yè)面文件所在位置。
2.怎么在搜索時(shí)規(guī)定只搜索二進(jìn)制文件、幫助頁(yè)面,還是源代碼呢?
如果你想只搜索,假設(shè)說,二進(jìn)制文件,你可以使用 -b 這一命令行選項(xiàng)。例如:
whereis -b cp

類似的, -m 和 -s 這兩個(gè) 選項(xiàng)分別對(duì)應(yīng) 幫助頁(yè)面和源碼。
3.如何限制 whereis 命令搜索位置?
默認(rèn)情況下,whereis 是從由匹配符所定義的硬編碼路徑來尋找文件的。但如果你想的話,你可以用命令行選項(xiàng)來限制搜索。例如,如果你只想在 /usr/bin 尋找二進(jìn)制文件,你可以用 -B 這一選項(xiàng)來實(shí)現(xiàn)。
whereis -B /usr/bin/ -f cp
注意:使用這種方式時(shí)可以給出多個(gè)路徑。使用 -f 這一選項(xiàng)來明確分隔目錄列表和要搜索的文件名。
類似的,如果你想只搜索幫助文件或源碼,你可以對(duì)應(yīng)使用 -M 和 -S 這兩個(gè)選項(xiàng)。
4.如何查看 whereis 的搜索路徑?
與此相對(duì)應(yīng)的也有一個(gè)選項(xiàng)。只要在 whereis 后加上 -l。
5.如何找到一個(gè)有異常條目的命令?
對(duì)于 whereis 命令來說,如果一個(gè)命令對(duì)每個(gè)顯式的請(qǐng)求類型都不止一項(xiàng),則該命令被視為異常。例如,沒有可用文檔的命令,或者對(duì)應(yīng)文檔分散在各處的命令都可以算作異常命令。 當(dāng)使用 -u 這一選項(xiàng),whereis 就會(huì)顯示那些有異常條目的命令。
例如,下面這一例子就顯示,在當(dāng)前目錄中,沒有對(duì)應(yīng)文檔或有多個(gè)文檔的命令。
whereis -m -u *