Alias

我的別名正在執行什麼命令?

  • April 5, 2019

這個問題中,反復建議要找出執行檔的位置,應該執行command -v file.

我現在已經嘗試command -v ls在幾個不同的系統上執行並且我不斷得到alias ls='ls --color=auto'(總是在 Bash 中)。

我有三個問題:

  1. 我錯過了什麼?這有什麼command -v ls幫助?
  2. 鑑於這which不能正常工作(根據連結問題的評論和答案)並假設我沒有遺漏問題 1 中的任何內容並且command -v ls確實有幫助,我怎麼知道ls實際執行的是哪個?
  3. 解決此問題的符合 POSIX 標準的方法是什麼?我的範例在 Bash 中,但我希望有一個可移植的解決方案。我知道type -P

我相信我已經找到了所有三個問題的答案。一旦你看到它就很明顯了,但對我來說根本不明顯**,**因此這個問題。

  1. 刪除別名
  2. 執行command -v。(參見POSIX)。
  3. Realas 如果這是一個人的願望。

對於那些可能不確切知道如何執行此操作的人的具體範例,下面我將此過程應用於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'

引用自:https://unix.stackexchange.com/questions/510745