Sim, inicie outro shell:
alias foo="sh -c 'cd /dir; ./exec &'"
Ou use um subnível:
alias foo="(cd /dir; ./exec &)"
Eu tenho um executável, vamos chamá-lo exec. Ele vive em um diretório, por causa do argumento chamado dir. Digamos que seja na raiz do sistema de arquivos. Eu posso rodar esse executável fazendo
cd /dir
./exec
Se eu tentar executá-lo em qualquer outro lugar, fazendo
/dir/exec
falha em executar. A partir da mensagem de erro emitida, parece que está tentando procurar por arquivos de suporte no diretório a partir do qual o comando foi executado, e não em seu próprio diretório. Até agora não é um problema enorme. No entanto, eu gostaria de alias o comando para que eu possa chamá-lo de qualquer lugar. Eu posso escrever um apelido da seguinte forma:
alias foo="cd /dir;./exec &"
Mas isso deixa meu terminal em /dir
, o que eu não quero. Eu também não quero mudar de volta para algum diretório arbitrário, eu quero ficar onde eu estava.
Isso pode ser feito?
Sim, inicie outro shell:
alias foo="sh -c 'cd /dir; ./exec &'"
Ou use um subnível:
alias foo="(cd /dir; ./exec &)"
Você também pode fazer assim: suponha que o arquivo a ser executado em qualquer lugar seja chamado: executeme
chmod + x executeme
sudo ln -sexame / usr / bin /
executeme
Tags command-line alias