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