如何让 bash 别名在任何目录中都可用?

如何让 bash 别名在任何目录中都可用?

正如标题所述,我希望能够从主目录以外的目录内部使用 bash 别名。如果文件结构看起来像 /home/Documents,我是否必须在 Documents 目录中创建另一个 .bash_aliases 文件夹,但将它们指向保存在主目录中的 bash 文件?

作为参考,.bash_aliases 存在于主目录中

alias mover=". ./mover.sh"

我的主目录中也有一个 mover.sh

答案1

以下一些想法基于这篇文章 如何根据每个目录设置别名?

如果别名包含.aliases在所有目录中命名的文件中,则一个想法是将别名定义为:

alias "foo=. ./.aliases; alias-command"

另一个想法是将以下函数添加到您的.bashrc文件中,以便每次您cd进入包含文件的目录时.aliases,它都会被获取:

function cd () { 
  builtin cd "$@" && [[ -f .aliases ]] && . .aliases
}

答案2

别名 mover=". ./mover.sh"

mover.sh... 将始终在当前工作目录中寻找
(cwd,您最后去的地方cd,由 打印pwd

例如;将其替换为

alias mover=". $HOME/mover.sh"或者
alias mover=". ~/mover.sh"

没有尝试过,无论 cwd 如何,两者都可能/应该可以工作;我很懒,就保留它们。

这些问题的答案
可以通过研究“Bash 指南”的内容来找到:http://www.tldp.org

相关内容