which
和有什么区别whereis
?
答案1
如何学习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
答案2
whereis
在标准 *nix 位置中搜索指定的命令。
which
搜索用户特定的 PATH(可能包括 whereis 搜索的某些位置,但可能不包括其他位置 -whereis
如果已添加到 PATH,还可能包括一些不搜索的位置)
答案3
答案4
我想分享一下我最近学到的东西苹果MacOSX Mojave;可以肯定它适用于过去几年中 Apple macOS 的多个版本:
在莫哈韦:
whereis
搜索可执行文件仅有的在字符串定义的路径中user.cs_path
;进一步定义为:/usr/bin:/bin:/usr/sbin:/sbin
。whereis
显示器无信息在任何系统文档(即man
页面)上。在某些系统上,
sysctl
可能用于“设置或获取内核状态”,但 Apple 已已弃用-w, --write
改变user.cs_path
使用的选项sysctl
。实际上,苹果公司已经不再负责
whereis
报告他们向客户提供的 10 到 20 年前的工具的所在位置user.cs_path
。所有这些可能会使苹果是
whereis
这个星球上最无用的实用程序。
如果你感兴趣的话:)