如何使符號連結可執行?
我正在使用 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 在內的大多數作業系統上都毫無用處。考慮的執行權限是連結到的文件的權限(如果有)。