Diretório de trabalho ao executar o comando

5

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?

    
por TimD 19.01.2013 / 13:56

2 respostas

7

Sim, inicie outro shell:

alias foo="sh -c 'cd /dir; ./exec &'"

Ou use um subnível:

alias foo="(cd /dir; ./exec &)"
    
por Dennis Kaarsemaker 19.01.2013 / 14:11
0

Você também pode fazer assim: suponha que o arquivo a ser executado em qualquer lugar seja chamado: executeme

  1. Se não for um arquivo executável, digite o seguinte comando para imitá-lo

chmod + x executeme

  1. Se você estiver no diretório em que o arquivo está, crie um link simbólico para ele no diretório bin (você deve ser root para fazer isso)

sudo ln -sexame / usr / bin /

  1. Se tudo estiver certo, você pode agora exultar seu arquivo em qualquer lugar, digitando o nome do arquivo

executeme

    
por Serge Oliver 19.01.2013 / 14:54