which
查找程序的二进制可执行文件(如果在您的PATH中)。man which
解释得更清楚:
如果参数在严格符合POSIX的外壳中作为命令给出,则它返回将在当前环境中执行的文件(或链接)的路径名。它通过在PATH中搜索与参数名称匹配的可执行文件来实现。它不遵循符号链接。
whereis
查找程序的二进制文件,源文件和手册页文件。例如
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
您可以通过将这些命令的输出作为参数传递给ls -l
或来获得更多细节。file
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locate
确实会找到在其路径中任何位置都指定了模式的所有文件。您可以告诉它仅查找名称(而不是完整路径)包含带有模式的-b
选项的文件和目录,该选项通常是您想要的,并且列表较少。
locate
之所以快速,是因为它使用了定期更新的二进制数据库(每天一次,通过cron
)。您可以自己更新它,以确保通过运行找到最近添加的文件sudo updatedb
还有一件事locate
-不在乎文件是否仍然存在,因此请避免使用查找最近删除的文件-e
。less
由于列表可能很长,所以我经常也会管道连接到。通常我会:
sudo updatedb && locate -b -e gimp | less
此处解释了 Unity破折号的工作原理-它使用Zeitgeist索引系统文件并从使用模式中学习,并使其他应用程序可以利用此数据,因此它要做的工作比得多locate
。
type
呢?:P