Em vez do link simbólico, você pode criar um script wrapper em / usr / local / bin:
#! /bin/sh
cd /opt/octane
exec ./octane "$@"
Torne o script executável com chmod +x /usr/local/bin/octane
.
Os "$ @" são os argumentos da linha de comando, portanto você ainda pode executar octane an_argument
.
O script altera o CWD (diretório de trabalho atual) somente dentro do script, porque o script é executado em uma nova instância do shell que termina no final do script. Alterar o diretório de trabalho atual para o executável pode realmente ser um problema se você quiser fornecer um nome de caminho relativo para o executável. Por exemplo. se você estiver em seu diretório home e executar octane a_file_in_the_home_directory
, ele não funcionará, porque o octane executable é chamado com um CWD de / opt / octane e a_file_in_the_home_directory não está em / opt / octane. Se isso for uma preocupação, lembre-se de fornecer apenas nomes de caminho absolutos ( octane ~/a_file_in_the_home_directory
) ou usar uma versão mais complicada do script.