在 Linux 中,我们有“which”命令来找出可执行文件的路径。
它的 Windows 等价物是什么?是否有任何 PowerShell 命令可以执行此操作?
PowerShell 是否具有与which大多数(如果不是全部)Unix shell 中的命令等效的命令?
有很多次我想知道我从命令行运行的东西的位置。在 Unix 中,我只做which <command>,它告诉我。我在 PowerShell 中找不到等效项。
我有默认的 OpenSSL 9.8 (Mac OS X 10.6.8) 并决定通过 MacPorts ( sudo port install openssl)安装最新版本 (1.0.1 )。
这些是which和whereis命令的控制台输出:
$ whereis openssl
/usr/bin/openssl
Run Code Online (Sandbox Code Playgroud)
(这是默认系统的一个)
$which openssl
/opt/local/bin/openssl
Run Code Online (Sandbox Code Playgroud)
(这是通过 MacPorts 安装的)
$ openssl version
OpenSSL 1.0.1c 10 May 2012
Run Code Online (Sandbox Code Playgroud)
(PATH中有mac端口的版本)
为什么为whereisand返回了不同的路径which,这可以吗?有什么办法可以得到相同的结果吗?
Linuxlocate和which在 Linux 中有什么区别?
为什么当我使用locate mentor它时会列出所有导师,但当我使用which mentor它时说“没有导师......” - 这是什么意思?
可能的重复:
Windows 相当于 whereis?
对于 Linux/Mac,我可以which用来定位文件。这个命令行工具相当于什么which?
有没有办法快速确定二进制文件(%PATH%变量指向的)的位置。
这相当于which perl在传统的 unix shell 中执行的操作。
我知道资源工具包有一个where命令,但是我的(公司)计算机上没有安装这个工具包,所以我不能使用where.
POSIX shell 标准在这个站点上说
http://pubs.opengroup.org/onlinepubs/9699919799/
关于 shell 如何PATH用于查找可执行文件:
“应从头到尾搜索列表,将文件名应用于每个前缀,直到找到具有指定名称和适当执行权限的可执行文件。”
好吧,这不是在真正的 POSIX 实现中的工作方式:
man which 说:
“返回将在当前环境中执行的文件(或链接)的路径名,其参数在严格符合 POSIX 的 shell 中作为命令给出。它通过在 PATH 中搜索与名称匹配的可执行文件来实现参数。它不遵循符号链接。”
好,我们来看看这个情况:
$ pwd
/home/mark
$ echo $PATH
/home/mark/bin:...
$ ls -l bin/foobar
lrwxrwxrwx 1 mark mark 18 Dec 12 22:51 bin/foobar -> /home/mark/foobar1
$ touch foobar1
$ which foobar
$ chmod a+x foobar1
$ which foobar
/home/mark/bin/foobar
Run Code Online (Sandbox Code Playgroud)
好的,这里有一个PATH正确名称的符号链接,它被报告ls为可执行。
which 根本不看它,而只对它指向的东西感兴趣。
尽管事实上两者都man which明确表示它不遵循符号链接(实际上我们看到它没有,因为which foobar不打印foobar1),而且上面引用的 POSIX shell 文档从未提到 …
我在很多地方都有一些程序(它是java命令)。我从 CMD 开始这个命令。问题是,我需要确切地知道java正在运行的命令的路径..
(如果您了解 unix,我需要一个诸如 的命令which)。
谢谢。
我想使用ports提供的python24,所以安装了,python_select -s显示确实选择了我想要的版本。跑步which python给了/opt/local/bin/python,跑步/opt/local/bin/python给了我想要的版本。但是,当我python从 shell运行时,我得到的是/usr/bin/python版本。我没有 python 别名。
简而言之,情况如下:
which python似乎证实了这一点。alias 只返回 1 个条目,这与此无关。然而,python从 bash shell运行给了我错误的 python!
我有点难住了!我在看什么?