Symlink

如何使符號連結可執行?

  • January 17, 2019

我正在使用 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:朱莉婭:找不到命令

但是該文件顯然在我的目錄中。我在這裡想念什麼?

只有當它位於其搜尋路徑(儲存在 PATH 變數中)時,Bash 才會找到由其裸文件名指定的執行檔(即沒有前面的路徑元素)。目前目錄不一定在搜尋路徑上。

要查看目前搜尋路徑,請嘗試以下操作:

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.

回答標題中提出的問題。

使符號連結可執行(或就此而言不可執行)不需要任何東西。

實際上,符號連結權限在包括 Linux 在內的大多數作業系統上都毫無用處。考慮的執行權限是連結到的文件的權限(如果有)。

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