我想知道如何在像这样的例子中运行文件:
我的路径中有两个文件:
/home/example/folder1/filewithname.sh
/home/example/folder2/filewithname.sh
我已经将两者folders
添加到 PATH 中,如何指定filewithname.sh
我正在谈论的内容?
提前致谢!
答案1
中列出的目录PATH
将搜索变量按照它们列出的顺序。当找到给定的命令时,搜索结束。
这意味着,如果您按照显示的顺序(folder1
之前)添加了两个目录,那么如果您只是在命令行上说,则将使用folder2
命令 from 。这folder1
filewithname.sh
folder1
。该命令的变体阴影中的变体folder2
。
如果您想要命令的其他变体,则必须使用其路径(即 as /home/example/folder2/filewithname.sh
)或通过一些等效的路径名来访问它。
您还可以为每个命令创建别名,这样您就不必考虑目录在 中列出的顺序$PATH
。例如,
alias c1=/home/example/folder1/filewithname.sh
alias c2=/home/example/folder2/filewithname.sh
这将允许您使用c1
并c2
执行这两个脚本。
您可以将这些别名定义放入 shell 的初始化文件中(例如,~/.bashrc
如果您使用的是bash
,则放在中,${ZDOTDIR:-$HOME}/.zshrc
如果您使用的是 ,则放在 中zsh
)。
答案2
您可以根据文件的完整路径单独运行这些文件:
$ /home/example/folder1/filewithname.sh
$ /home/example/folder2/filewithname.sh
或者您可以更改为各个文件的目录,并根据文件的相对路径运行这些文件。例如:
cd /home/example/folder1
~/example/folder1$ ./filewithname.sh
cd /home/example/folder2
~/example/folder2$ ./filewithname.sh
要以这种方式运行文件,必须在文件上设置执行位。