Questions tagged «which»

unix命令“哪个”通常用于在PATH中搜索可执行文件,即使它在这项工作中不是很出色。


7
如何在别名命令上使用“哪个”?
像大多数用户一样,我设置了一堆别名来为常用程序提供默认的标志集。例如, alias vim='vim -X' alias grep='grep -E' alias ls='ls -G' 问题是,如果我想使用which上看到我的vim/ grep/ ls/等从,别名的方式来获得: $ which vim vim: aliased to vim -X 这是有用的输出,但是在这种情况下不是我想要的;我知道vim是别名,vim -X但我想知道它 vim的来源。 除了临时取消定义别名(以便我可以which在上面使用)之外,是否有一种简单的方法来which“解开”别名并在其上运行? 编辑:似乎which是一个shell内置的,在不同的shell上具有不同的行为。在Bash中,SiegeX对--skip-alias旗帜的建议起作用了。但是,我在Zsh上。那里是否存在类似的东西?
76 shell  zsh  alias  which 

1
Bash记住了被移动/删除的可执行文件的错误路径
当我做 which pip3 我懂了 /usr/local/bin/pip3 但是当我尝试执行时pip3,出现如下错误: bash: /usr/bin/pip3: No such file or directory 这是因为我最近删除了该文件。现在which命令指向的另一个版本pip3是位于/usr/local/bin但外壳还记得在错误的道路。我该如何忘记那条路? 该which手册说 which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the …
29 bash  path  which 

3
我的“哪个”命令有时可能是错误的?
我已经从源代码(v24.2)编译了最新的emacs版本,因为我的计算机上安装的版本(v21.3)很旧。我已经照常做了: $configure --prefix=$HOME make make install 现在,我正在测试emacs,并意识到它仍会启动以前的版本...而我的$HOME/bin路径应该覆盖系统路径(因为它在我的.bashrc文件中位于$ PATH之前)。 我首先想到的是查看which命令输出。令人惊讶的是,它为新的emacs开辟了道路。我不明白这里的差异在哪里。在同一会话中,这里是不同的输出: $ emacs --version GNU Emacs 21.3.1 $ `which emacs` --version GNU Emacs 24.2.1 我没有涉及emacs的别名。完全没有 $ alias | grep emacs $ 你知道发生了什么吗?
17 bash  emacs  path  which 

1
哪里和哪里有什么区别
where和whichshell命令有什么区别?这里有些例子 ~ where cc /usr/bin/cc /usr/bin/cc ~ which cc /usr/bin/cc 和 ~ which which which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/which ~ which where /usr/bin/which: no where in (/usr/local/bin:/bin:/usr/bin:/home/bnikhil/bin:/bin) 也 ~ where which which: aliased to alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde which: shell built-in command /usr/bin/which /usr/bin/which …

2
如何添加要被Unix发现的主目录路径的哪个命令?
我已node.js在自定义位置安装并将该位置添加到$PATHin .profile文件中。 $ node --version v0.6.2 $ which node $ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:~/Unix/homebrew/bin $ cat ~/.profile export PATH="$PATH:~/Unix/homebrew/bin" Node.js本身运行良好。问题是它没有按which命令列出。所以我npm现在不能安装。因为npminstall无法找到的位置node.js。如何使node二进制文件被发现which?
12 path  profile  home  which 

1
检测(从脚本)是否已安装软件的最佳方法是什么?
之前,我对which跨不同平台(Linux与Solaris vx。OS X)的命令输出有所不同感到沮丧,因为不同的外壳也可能会引起问题。 type有人建议将其作为更好的替代方法,但是它的便携性如何? 过去,我写过一些函数来解析输出which并处理遇到的各种用例。它们可以在我使用的所有机器上工作,因此对我的个人脚本来说还可以,但是对于我要发布给他人使用的软件来说,这似乎非常不可靠。 仅举一个可能的例子,假设我必须从脚本中检测bash和zsh在计算机上是否可用,然后使用zsh(如果存在)运行一个命令,如果zsh不存在并且bash足够,则使用bash运行一个命令。版本没有特定错误。该脚本的其余大部分内容可能是Bourne shell或Ruby或其他任何东西,但是必须使用zsh或bash的最新版本来完成这一特定操作(AFAIK)。 我可以指望type可以跨平台使用吗?是否有其他替代方法which可以轻松,一致地回答是否已安装特定软件的问题? (如果您还想提供与我给出的示例特别相关的想法,那很好,但是我主要是在询问一般情况:找出给定机器上是否安装了特定物品的最可靠方法是什么? ?)
9 bash  zsh  standard  which 

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.