当前位置:首页 > 行业动态 > 正文

linux where which

whereis和which都是Linux系统中的查找文件命令,但是它们的作用不同。whereis命令用于查找程序的二进制文件、源代码文件或帮助文档等,而which命令则主要用于查找可执行文件的位置 。

Linux中whereis与which的区别

在Linux系统中,whereis和which都是用于查找文件的命令,但它们的工作原理和查找方式有所不同,本文将详细介绍whereis和which的区别,以及它们在实际使用中的注意事项。

1、工作原理

whereis:whereis命令用于查找二进制、源代码、手册等文件的位置,它通过搜索系统的PATH环境变量中的目录来查找文件,whereis命令会返回两个信息:文件名和文件所在的目录,如果没有找到文件,whereis会返回一个错误信息。

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

which:which命令用于查找可执行程序的位置,它通过搜索系统的PATH环境变量中的目录来查找文件,which命令会返回一个结果,即文件所在的完整路径,如果没有找到文件,which会返回一个错误信息。

$ which ls
/bin/ls

2、查找范围

whereis:whereis命令主要用于查找二进制文件、源代码文件和手册页等类型的文件,它可以查找系统内置的命令、用户安装的软件包以及系统文档等。

3、结果格式

whereis:whereis命令返回的结果包含两部分信息,分别是文件名和文件所在的目录。

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

4、速度对比

whereis:由于whereis需要搜索系统的PATH环境变量中的多个目录,所以它的搜索速度相对较慢,而which只需要搜索PATH环境变量中的一个目录,所以它的搜索速度相对较快。

相关问题与解答

1、whereis和which哪个更快?

答:whereis和which在查找速度上有一定的差别,但具体哪个更快取决于实际情况,通常情况下,which的速度会略快于whereis,因为它只需要搜索PATH环境变量中的一个目录,如果要查找的文件可能存在于多个目录中,那么whereis可能会更快一些,因为它会搜索所有的目录。

2、如何提高whereis的搜索速度?

答:可以通过修改PATH环境变量的顺序来提高whereis的搜索速度,将常用的路径放在PATH环境变量的最前面,这样whereis就会优先在这些路径中进行搜索。

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/puppetlabs/bin:~/bin > ~/.pathfile && source ~/.pathfile

3、如何使用whereis查找特定类型的文件?

答:可以使用通配符(*)来匹配文件名的一部分,从而只查找特定类型的文件,要查找所有以".sh"结尾的文件,可以使用以下命令:

$ whereis *.sh

4、如何使用which查找可执行程序的版本信息?

答:可以使用以下命令来查找可执行程序的版本信息:

$ which --version <command_name>
0