要使脚本可以从终端中的任何位置访问,可以使用以下命令序列:
PATH=$PATH:some_path_here
export PATH
其中包括与其所有子文件夹一起发送的路径中的所有文件。这意味着从那时起,只需键入存储在该文件夹结构中的脚本的名称即可执行它。
如何以这种方式仅导出单个文件而不是整个文件夹及其所有子目录?
答案1
看来alias
正是您所需要的。您可以指定任何单词作为别名,并设置执行单词时将执行的内容。
alias newcommand='/path/to/your/command'
你可以把它放在 ~/.shellrc 中(其中 shell 是你的 shell,所以bash
它会是~/.bashrc
),启动后它将可用。
欲了解更多信息请查看这里。
答案2
创建一个symbolic link
到您的文件,并将其放置在合适的PATH
目录中,例如$HOME/bin
或其他目录。
ln -s "/path/to/my-file" "$HOME/bin/my-file"
答案3
export
为了解释拉什回答的背景,不是对 中的可执行文件执行任何操作$PATH
。export PATH
简单地方法“我希望 PATH 变量被所有子进程继承。”当您输入myprogram
提示并按下时会发生Enter一系列shell 内的查找。
当在 BASH 中指定命令时不带路径名(例如 myprogram 或 ls),并且它不是别名、函数、内置命令或关键字时,BASH 会按从左到右的顺序搜索 PATH 中的目录,以查看是否存在它们包含您输入的名称的可执行文件。
$PATH
,换句话说,是一个列表目录,这就是为什么它不能用于单个命令(除非隐式地将可执行文件放在单独的目录中)。您不能将命令提升为内置命令或关键字,但您能创建函数或别名。请参阅前面的链接,了解它们之间差异的简单解释。