Bash

如何為每個目錄設置別名?

  • January 27, 2021

假設您有一個 alias go,但希望它在不同的目錄中做不同的事情?

它應該在一個目錄中執行cmd1,但在另一個目錄中它應該執行cmd2

順便說一句,我已經有一個用於切換到上述目錄的別名,那麼是否可以將go別名分配附加到foo別名?

alias "foo=cd /path/to/foo"

在 OSX 上使用 bash(?)。

不完全確定您要問什麼,但別名只是擴展為別名中的內容。如果您有兩個別名,則可以附加不同的命令,甚至是別名。

alias "foo=cd /path/to/foo; go"
alias "foo2=cd /path/to/foo2; go"

在任何其他情況下,您可以在您的.bashrc

function go ()
{
   if [ "$PWD" == "/path/to/foo" ]; then
      cmd1
   elif [ "$PWD" == "/path/to/go" ]; then
      cmd2
   fi;
}

如果您有更多選擇,您可以更好地使用案例結構。

我覺得您非常“面向目錄”,在這種情況下,這可能更適合您的心態。

(但老實說,我認為這完全是個壞主意,您希望命令是全域的。)

.bashrc中,放入alias go="./.cmd"(然後source ~/.bashrc)。

然後,在每個這樣的目錄中,放置一個名為.cmd, then的腳本,chmod +x .cmd然後go做你的事。

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