新聞中心
Linux中whereis與which的區(qū)別
在Linux系統(tǒng)中,whereis和which都是用于查找文件的命令,但它們的工作原理和查找方式有所不同,本文將詳細介紹whereis和which的區(qū)別,以及它們在實際使用中的注意事項。

1、工作原理
whereis:whereis命令用于查找二進制、源代碼、手冊等文件的位置,它通過搜索系統(tǒng)的PATH環(huán)境變量中的目錄來查找文件,whereis命令會返回兩個信息:文件名和文件所在的目錄,如果沒有找到文件,whereis會返回一個錯誤信息。
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
which:which命令用于查找可執(zhí)行程序的位置,它通過搜索系統(tǒng)的PATH環(huán)境變量中的目錄來查找文件,which命令會返回一個結(jié)果,即文件所在的完整路徑,如果沒有找到文件,which會返回一個錯誤信息。
$ which ls /bin/ls
2、查找范圍
whereis:whereis命令主要用于查找二進制文件、源代碼文件和手冊頁等類型的文件,它可以查找系統(tǒng)內(nèi)置的命令、用戶安裝的軟件包以及系統(tǒng)文檔等。
3、結(jié)果格式
whereis:whereis命令返回的結(jié)果包含兩部分信息,分別是文件名和文件所在的目錄。
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
4、速度對比
whereis:由于whereis需要搜索系統(tǒng)的PATH環(huán)境變量中的多個目錄,所以它的搜索速度相對較慢,而which只需要搜索PATH環(huán)境變量中的一個目錄,所以它的搜索速度相對較快。
相關(guān)問題與解答
1、whereis和which哪個更快?
答:whereis和which在查找速度上有一定的差別,但具體哪個更快取決于實際情況,通常情況下,which的速度會略快于whereis,因為它只需要搜索PATH環(huán)境變量中的一個目錄,如果要查找的文件可能存在于多個目錄中,那么whereis可能會更快一些,因為它會搜索所有的目錄。
2、如何提高whereis的搜索速度?
答:可以通過修改PATH環(huán)境變量的順序來提高whereis的搜索速度,將常用的路徑放在PATH環(huán)境變量的最前面,這樣whereis就會優(yōu)先在這些路徑中進行搜索。
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/puppetlabs/bin:~/bin > ~/.pathfile && source ~/.pathfile
3、如何使用whereis查找特定類型的文件?
答:可以使用通配符(*)來匹配文件名的一部分,從而只查找特定類型的文件,要查找所有以".sh"結(jié)尾的文件,可以使用以下命令:
$ whereis *.sh
4、如何使用which查找可執(zhí)行程序的版本信息?
答:可以使用以下命令來查找可執(zhí)行程序的版本信息:
$ which --version
文章標題:linuxwherewhich
本文鏈接:http://fisionsoft.com.cn/article/cddshgs.html


咨詢
建站咨詢
