如何使符号链接可执行?

如何使符号链接可执行?

我正在使用 Cloud9.io IDE。

我已经下载了 Julia 通用可执行文件并将其解压缩。

sudo wget https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.3-linux-x86_64.tar.gz
tar xvzf julia-1.0.3-linux-x86_64.tar.gz

现在我可以通过 运行该程序julia-1.0.3/bin/julia

因此,下一步我尝试创建一个符号链接,因此我只需输入 即可运行该程序julia。所以我尝试了

sudo ln -s julia-1.0.3/bin/julia julia

当我运行时julia它说

bash:朱莉娅:找不到命令

但该文件显然在我的目录中。我在这里缺少什么?

答案1

回答标题中提出的问题。

使符号链接可执行(或就此而言不可执行)不需要执行任何操作。

实际上,符号链接权限在大多数操作系统(包括 Linux)上没有任何作用。考虑的执行权限是链接到的文件的执行权限(如果有)。

答案2

仅当 Bash 位于其搜索路径(存储在 PATH 变量中)时,才会找到由其裸文件名指定的可执行文件(即没有前面的路径元素)。当前目录不一定位于搜索路径上。

要查看当前搜索路径,请尝试以下操作:

echo $PATH

要查看命令是否在您的搜索路径上,请尝试以下操作:

which command

如果command位于搜索路径上,该which命令将返回该命令在文件系统上的位置。 - 要使用命令目录扩展搜索路径,请尝试:

PATH=$PATH:directory_to_be_added

请注意,directory_to_be_added应该是可执行文件的完整目录名称(而不是相对于当前目录的目录)。

将命令的目录julia添加到 PATH 后,which julia应返回julia的完整路径名,并且julia应该可以从文件系统上的任何位置执行。

更改 PATH 是确保 shell 找到您经常使用的可执行文件的通用方法。如果您只想运行一次不在搜索路径上的命令(即一次性尝试),或者您希望覆盖搜索路径,则可以指定包含路径名元素的命令。因此,要运行当前目录中而不是搜索路径上的命令(或者不是搜索路径上具有该名称的第一个命令),您可以使用./command.

相关内容