delete bash hash para o caminho do executável em particular

1

Eu tenho um comando chamado gmx nesses dois caminhos:

/usr/local/bin/gmx

e

/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx

como posso deletar o hash do bash para apenas um deles?

se eu correr:

hash -d gmx

qual deles está excluindo? Está excluindo ambos ou apenas o valor mais recente? Isso é válido para excluir um em particular?

hash -d  "/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx"
    
por Alexander Mills 10.05.2018 / 22:50

1 resposta

6

O Bash apenas lembra um caminho por nome, portanto, ele terá apenas um caminho para gmx (no máximo). Você pode ver qual deles está executando

hash -t gmx

Rodando

hash -d gmx

excluirá qualquer entrada para gmx (a mostrada por hash -t ). Na próxima vez que você tentar executar gmx , o shell procurará nos diretórios listados em seu PATH e armazenará o primeiro que encontrar como hash.

Você não pode excluir um valor específico, mas pode forçar um determinado valor, incluindo um que não esteja no seu PATH :

hash -p /usr/local/bin/gmx gmx

Isso fará com que o shell execute /usr/local/bin/gmx quando você digitar gmx .

Veja o manual do Bash para detalhes.

    
por 10.05.2018 / 22:56