Filesystems

目錄中所有文件的全域別名,按文件名(副檔名,如果可用,將被省略)

  • March 10, 2018

在 Ubuntu 16.04 中,我有一個將近 10 個文件的目錄,每個文件都包含一個 Bash 腳本文件:

"$HOME"/myScripts/x.sh
"$HOME"/myScripts/y.sh
...

而是為以下文件中的每一個文件創建近 10 個不同的別名bashrc

alias "$HOME"/myScripts/x.sh
alias "$HOME"/myScripts/y.sh
...

有沒有辦法創建一個“全域”別名,它將保存該目錄("$HOME"/myScripts/)的路徑,並讓我訪問執行每個文件,但也沒有它們的.sh副檔名?

例如,我將在控制台中執行:

x

並將"$HOME"/myScripts/x.sh被執行。

我不會真正使用非直覺的名稱,例如x,它只是範例。

這裡要解決的小問題是保存數量別名,簡化它們的維護。我認為,使用專用於某些軟體上下文的目錄的越多,這種方法就越方便。

更新

最後我所做的是創建一個包含許多 Bash 函式的文件,然後我獲取該文件,然後導出其中的函式:

export -f myFunc_0 myFunc_1 ...

可能有一種簡單的全球方式來導出這些,但我不知道有哪一種。

您可以將目錄添加到您的路徑中,這樣您就可以x.sh從任何地方鍵入而無需別名。

例如~/.bashrc

PATH="$PATH:$HOME/myScripts"

無需副檔名,因此您只需將腳本從 重命名x.shx.

mv ~/myScripts/x.sh ~/myScripts/x

或者,您可以從腳本創建一個符號連結到路徑中的某個位置,例如/usr/local/bin,並將連結命名為x

ln -s /home/user/myScripts/x.sh /usr/local/bin/x

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