whichwhereis有什么区别?

评论

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

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

@ mk12我觉得类型更好。它还了解定义的别名,函数等

#1 楼

如何使用whereis了解whichwhatis

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

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

$  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


评论


不知道whatis,谢谢。

–mk12
09年9月12日在20:39

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

– DenilsonSáMaia
09年9月12日在20:44

改为unix

–mk12
09年9月12日在23:24

不仅如此。在我的系统上,whereis和which返回不同的可执行路径。我只能获得通往实际与whereis一起运行的路径,而无法获得针对该路径的路径。

–乔丹·瑞特(Jordan Reiter)
16年8月21日在22:25

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

– DenilsonSáMaia
16年8月22日在0:01

#2 楼

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

which搜索用户特定的PATH(其中可能包括搜索的某些位置,可能不包括其他位置-它可能还包括某些位置whereis不会搜索是否已添加到PATH)

评论


* nix是什么?

–mk12
09年9月12日在20:19

Unix,Linux等(属于Mac OS X等)

–汤姆
09年9月12日在20:23

呵呵,哈哈,我一直以为由于某种原因,堆栈溢出会检查unix中的U。

–mk12
09年9月12日在22:19
不。创造性通配符使用的一个相当普遍的约定是指一系列类似的操作系统。 ;)

– Dav
09年9月12日在22:28

是!举一个很好的例子,比较一下:PATH =''/ usr / bin / where vim vs PATH =“''/ usr / bin / whereis vim。即使您的PATH为空,whereis命令仍然可以找到可执行文件。

–edan
20年6月19日在18:35



#3 楼

引用其手册页:

whereis:


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


例如:

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


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


,其中:


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


例如:

$ which php
/usr/bin/php


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

#4 楼

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


$其中ls
/ bin / ls
$其中ifconfig
$ #无输出,因为ifconfig仅存在于根目录的PATH中。


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


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


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

评论


您是否运行了updateb命令?据我所知,定位依赖于此

– Oliver M Grech
18年2月2日在10:37