which
和之间有什么区别whereis
?
type
。它还知道定义的别名,函数等
which
和之间有什么区别whereis
?
type
。它还知道定义的别名,函数等
Answers:
如何学习whereis
和which
使用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
whereis
,而不能获得which
。
which
显示实际路径。您确定由指向的路径which
不仅仅是与指向的路径的符号链接whereis
吗?也许这是一个shell别名。在bash中,尝试运行type your_cmd_here
。
其搜索在环境变量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
但似乎whereis和locate并没有使用相同的数据库。当我安装了软件然后使用whereis并立即定位以搜索该软件时。结果是whereis可以找到一些与此软件相关的文件,而locate却找不到。他们真的使用其他数据库吗?数据库如何工作?-那么,拒绝当学徒怎么样?:)