哪个/哪里差异


112

which和之间有什么区别whereis


很抱歉,但是在我的10.5.8 OS X系统上,它和where 总是给出相同的结果。也许这 OS X特有的问题,因为我同意,所以预期会有不同的结果。也许whereis不符合应做的事情。至少两个示例(请参见下文)无法正常工作:whereis ls和whereis php始终提供与which相同的结果。雪豹的行为是否一样?

是的,我知道,这就是为什么我问这个问题。
09年

@Wolf是一个示例,whichwhereis给出了不同的输出(在macOS Sierra上)apple.stackexchange.com/questions/259047/…–
马修(Matthew

@ mk12我觉得很棒type。它还知道定义的别名,函数等
phil294 '18

Answers:


121

如何学习whereiswhich使用whatis

$  whatis which
which                (1)  - shows the full path of (shell) commands

$  whatis whereis
whereis              (1)  - locate the binary, source, and manual page files for a command

基本上,whereis搜索“可能有用”的文件,而which仅搜索可执行文件。

我很少使用whereis。另一方面,which它非常有用,尤其是在脚本中。which问题的答案是:该命令从何而来?

$  which ls
/bin/ls

$  whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2

34
不知道whatis,谢谢。
mk12

1
顺便说一句,我将删除“ osx”标签,因为此问题适用于所有unix变体(包括Linux,BSD,Mac OS X等)
DenilsonSáMaia

更改为unix
mk12

1
不仅如此。在我的系统上,whereis和which返回不同的可执行路径。我只能获得通往实际运行路线的路径whereis,而不能获得which
乔丹·瑞特

1
@JordanReiter:不可能!which显示实际路径。您确定由指向的路径which不仅仅是与指向的路径的符号链接whereis吗?也许这是一个shell别名。在bash中,尝试运行type your_cmd_here
DenilsonSáMaia

23

whereis 在标准* nix位置中搜索指定的命令。

which搜索您特定于用户的PATH(可能包含其中一些搜索位置,可能不包含其他位置- whereis如果您添加到PATH中,则可能还包含一些无法搜索的位置)


* nix是什么?
mk12

2
Unix,Linux等(Mac OS X等)

8
哦,哈哈,我一直以为由于某种原因,只要我看到unix,堆栈溢出就会检查unix中的
U。– mk12

不。创造性通配符使用的一种相当普遍的约定是指一系列类似的操作系统。;)

6

引用他们的手册页:

在哪里

whereis查找指定文件的源/二进制和手册部分。

例如 :

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

即,“ php”可执行文件,以及其他一些内容(例如手册页)。


并且其中

它返回将在当前环境中执行的文件的路径名

例如 :

$ which php
/usr/bin/php

即,只有“ php”可执行文件。


1

搜索在环境变量PATH指定的目录中的可执行文件。如果发现,将打印此可执行文件的完整路径名。

$ which ls
/ bin / ls
$ which ifconfig
$#没有输出,因为ifconfig仅存在于root的PATH中。

whereis使用系统自动建立的数据库搜索可执行文件,源文件和手册页。

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

但似乎whereislocate并没有使用相同的数据库。当我安装了软件然后使用whereis并立即定位以搜索该软件时。结果是whereis可以找到一些与此软件相关的文件,而locate却找不到。他们真的使用其他数据库吗?数据库如何工作?-那么,拒绝当学徒怎么样?:)


您是否运行了updatedb命令?据我所知,定位依赖于此
Oliver M Grech '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.