Criar alias ou adicionar caminho?

2

Acabei de instalar um novo programa (vamos chamá-lo foo) na minha máquina Linux. Os arquivos do programa estão em um local incomum que não faz parte do meu $PATH . Se eu gostaria de poder executar facilmente este programa a partir do terminal, enquanto em qualquer diretório, é melhor mudar minha variável $ PATH ou criar um alias? Isso importa?

Por exemplo, o método de alias seria adicionar isto:     alias foo="/ caminho / para / program / foo.sh"

E o método $ PATH seria:     exportar PATH = / path / to / program; $ PATH

Qual é melhor e por quê?

    
por Nosrettap 21.08.2013 / 19:06

3 respostas

2

"Melhor" é um termo um tanto nebuloso, mas eu recomendo adicionar o diretório do programa a $PATH , porque (ao contrário dos aliases) que serão herdados pelos subprocessos do seu shell.

Por exemplo, se você iniciar um editor a partir do seu shell e, em seguida, quiser executar o foo.sh a partir do editor, como por exemplo para compilar o arquivo que está editando ou transformar seu texto, o editor saberá onde encontrar foo.sh; Se você adicionar um alias, precisará especificar o caminho completo para foo.sh ao executá-lo no editor.

    
por 21.08.2013 / 19:34
2

Existe uma terceira opção. Crie um link de um dos diretórios em $ PATH para o programa. Um novo diretório pode ser dedicado apenas para essa finalidade (para vincular a programas em locais não padrão). Desta forma, o PATH não será poluído se houver mais programas como este adicionados no futuro e também Aaron mencionar, isso não dependerá do alias onde o alias não está disponível.

    
por 21.08.2013 / 19:53
1

O caminho absoluto (aqui seu alias) é cada vez mais rápido que o conjunto PATH variable ..

Porque quando você define a variável PATH por exemplo "/ caminho / para / programa" e deseja executar foo.sh shell, procure a variável PATH e, em seguida, pesquise foo.sh nesse diretório (/ caminho / para / program) mas quando você usa o caminho absoluto (Aqui sua variável foo), o shell não irá olhar para o caminho e então procurar por esse diretório (/ path / to / program) para encontrar "foo.sh".

    
por 21.08.2013 / 19:52