Linux

Bash 別名不適用於 Linux 中的“cd”命令

  • June 30, 2021

在 Bash 中嘗試別名,無法看到它與cd命令一起使用

[0s][/nobackup/sumikum7]> sjc-tftp
-bash: /auto/tftp-xeinfra/sumikum7/: Is a directory
[0s][/nobackup/sumikum7]> cd sjc-tftp
-bash: cd: sjc-tftp: No such file or directory
[0s][/nobackup/sumikum7]> cd /auto/tftp-xeinfra/sumikum7/
[0s][/auto/tftp-xeinfra/sumikum7]>

嘗試搜尋幾個地方,但在 Linux 的任何地方都沒有發現這個問題。

筆記:

  • bash 版本:GNU bash,版本 4.4.19(1)-release (x86_64-redhat-linux-gnu)
  • 為 MAC找到了一些東西,請讓我知道這是否也是這裡的原因。

從 bash 手冊頁:

當字元串用作簡單命令的第一個單詞時,別名允許將字元串替換為單詞。

由於sjc-tftp不是第一個單詞,cd sjc-tftp它不會被擴展。要實現您正在嘗試的內容,您可以使用簡單的 shell 變數$sjc-tftp或使別名包含 cd 命令,例如:alias sjc-tftp="cd /auto/tftp-xeinfra/sumikum7/". 然後只需sjc-tftp在沒有 cd 的情況下自行鍵入即可更改目錄。您連結到的 Mac 問題似乎在談論符號連結而不是別名。

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