在这问题一再建议,要找出可执行文件的位置,应该运行command -v file
.
我现在尝试command -v ls
在几个不同的系统上运行,并且不断alias ls='ls --color=auto'
(总是在 Bash 中)。
我有三个问题:
我缺少什么?它有何
command -v ls
帮助?鉴于它
which
不能正常工作(根据链接问题的评论和答案)并假设我没有遗漏问题 1 中的任何内容并且确实command -v ls
有帮助,我如何知道哪个ls
实际上运行了?解决这个问题的 POSIX 兼容方法是什么?我的例子是在 Bash 中,但我希望有一个可移植的解决方案。我知道关于
type -P
.
答案1
我相信我已经找到了所有三个问题的答案。一旦你看到它就很明显,但对我来说并不明显根本不,因此提出这个问题。
- 删除别名
- 跑步
command -v
。 (看POSIX在此)。 - 现实,如果这是一个人的愿望。
对于那些可能不知道如何执行此操作的人来说,下面是一个具体示例,我将这个过程应用于ls
.
$ command -v ls
alias ls='ls --color=auto'
$ unalias ls # Step 1 above
$ command -v ls # Step 2 above
/bin/ls
$ alias ls='ls --color=auto' # Step 3 above
$ command -v ls
alias ls='ls --color=auto'