Questions tagged «which»



4
相当于Unix“哪个”命令的PowerShell?
PowerShell是否具有与which大多数(如果不是全部)Unix Shell中找到的命令等效的命令? 有很多次我想从命令行了解我正在运行的内容的位置。在Unix中,我只是这样做which <command>,它告诉我。我在PowerShell中找不到等效项。


1
“ whereis”和“哪个”在Mac OS X中返回不同的路径
我已经有了默认的OpenSSL 9.8(Mac OS X 10.6.8),并决定通过MacPorts(sudo port install openssl)安装最新版本(1.0.1 )。 这些是which和whereis命令的控制台输出: $ whereis openssl /usr/bin/openssl (这是默认系统的) $which openssl /opt/local/bin/openssl (这是通过MacPorts安装的) $ openssl version OpenSSL 1.0.1c 10 May 2012 (PATH中有mac port的版本) 为什么要为whereis和返回不同的路径which,这样可以吗?有什么办法可以得到平等的结果吗?
27 macos  path  macports  which 

2
如何在cmd.exe中“哪个<binary>”
有没有一种方法可以快速确定二进制文件(%PATH%变量指向的位置)的位置。 这which perl与传统的unix shell中的功能相当。 我知道资源工具包有一个where命令,但是该工具包未安装在(公司)计算机上,因此我无法使用where。

3
PATH搜索是否包含符号链接?
POSIX Shell标准在此站点上说 http://pubs.opengroup.org/onlinepubs/9699919799/ 有关shell如何PATH用于查找可执行文件的信息: “应从头到尾搜索列表,将文件名应用于每个前缀,直到找到具有指定名称和适当执行权限的可执行文件为止。” 嗯,这在实际的POSIX实现中似乎不是这样工作的: man which 说: “返回参数(在严格符合POSIX的外壳程序中以命令形式给出)的情况​​下,将在当前环境中执行的文件(或链接)的路径名。它通过在PATH中搜索与文件名匹配的可执行文件来实现。参数。它不遵循符号链接。” 好,让我们看看这种情况: $ pwd /home/mark $ echo $PATH /home/mark/bin:... $ ls -l bin/foobar lrwxrwxrwx 1 mark mark 18 Dec 12 22:51 bin/foobar -&gt; /home/mark/foobar1 $ touch foobar1 $ which foobar $ chmod a+x foobar1 $ which foobar /home/mark/bin/foobar 好的,这是一个PATH带有正确名称的符号链接,并且据报告ls是可执行的。 which 根本不看它,只对它指向的内容感兴趣。 …


3
`哪个python`指向我想要的python,但是`python`运行错误的版本
我想使用端口提供的python24,所以我已经安装了它,并python_select -s显示确实选择了我想要的版本。运行which python给出/opt/local/bin/python,运行/opt/local/bin/python给出我想要的版本。但是,当我python从外壳运行时,会得到/usr/bin/python版本。我没有python别名。 简而言之,情况如下: 我相信这条道路是明智的,which python似乎可以证实这一点。 alias 只返回1个条目,与此无关。 但是,python从bash shell 运行会给我错误的python! 我有点难过!我在俯视什么?

2
Linux:从指定的搜索路径中查找第一个结果
如果我有一个冒号分隔的路径列表,很像$ PATH,但不一定是$ PATH。 我想在该列表中搜索特定的文件名。但是,我只想要第一个匹配的路径。 我考虑过以下linux命令: which:仅适用于二进制文件,仅适用于$ PATH变量 whereis:适用于特定类型的文件,仅适用于$ PATH变量 find:不支持冒号分隔的路径列表,并返回多个结果 以下是我尝试过的一些事情: 我试图whereis通过以下策略使用 env WHEREIS="`which whereis`" PATH="$MY_PATH_LIST" $WHEREIS "$TARGET_FILE" 这几乎可行。但是,它似乎没有返回任意文件类型的结果。它还会以笨拙的格式返回多个结果。 我可以which上班 env WHICH="`which which`" PATH="$MY_PATH_LIST" $WHICH "$MY_TARGET_FILE" 如果有一个命令行选项强制它允许非可执行文件。 然后我尝试解决问题find。首先,我使用正则表达式来扩展路径列表(我用空格替换冒号)。然后我调用find,它正常工作。但是,它会搜索所有路径。如果找到一个好的结果,我似乎无法找到一种方法告诉它尽早停止搜索。 我确实让这个工作了 find ${MY_PATH_LIST//[:]/ } -name "$MY_TARGET_FILE" | head -n 1 但它需要很长时间才能完成,因为find仍在进行详尽的搜索。 我需要这个更快地执行(退出第一个结果),因为它将运行多次,具有不同的参数。 有人有更好的解决方案吗? 请注意,如果全部失败,我可以编写非bash解决方案。现在写我希望使用现有工具的简单解决方案。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.