whereis 用来查看一个命令或者文件所在的绝对路径,而 which 用来查看当前要执行的命令所在的路径。
下面举个例子来说明。加入你的linux系统上装了多个版本的java。如果你直接在命令行敲命令 "java -version" ,会得到一个结果。但是,你知道是哪一个路径下的java在执行吗?如果想知道,可以用 which 命令:
which java
得到的结果就是系统默认执行的java所在的路径。
如果使用命令: whereis java
那么你会得到很多条结果,因为这个命令把所有包含java(不管是文件还是文件夹)的路径都列了出来。
原文地址:http://kooyee.iteye.com/blog/445886
在Windows的Resource Kit中有一个where.exe,它也有相同的功效,不过一套Resource Kit要300美元,在这里我们可以作一个批处理文件来实现这个功能。
使用记事本编辑一个which.bat,并将其存放在Winnt目录或者其他Path变量中的目录里,该批处理文件的内容如下:
@echo off Rem 检查命令行参数 if {%1}=={} goto :Usage for %%i in ({ {/ {-) do if {%1}==%%i?} goto :Usage %%i echo. :Rem 在当前目录检查看是否存在该文件 for %%i in (%1) do if exist %%~nx%i ( echo %%~Fi goto :EOF ) :Rem 在Path中检查该文件 for %%i in (%1) do ( if exist %%~$PATH:i ( echo %%~$PATH:i ) else ( echo Error: %1 不在路径里!!! goto :Usage ) ) goto :EOF :Usage echo. echo WHICH "filename" echo. echo 输入文件名,返回该文件的全路径! echo.
注意bat文件要存为ANSI编码格式在cmd中中文才不会为乱码