Colocar diretório atual (corrent) no PATH

Publicado por Perfil removido em 27/11/2011

[ Hits: 17.213 ]

 


Colocar diretório atual (corrent) no PATH



Uma dica bem rápida, porém muito útil. Descobri faz pouco tempo e acredito que muitos nem pensaram nisso.

O Linux, por padrão, não pesquisa um comando na pasta atual.

Vamos supor que você aplique o seguinte comando:

cd /media/CDROM/binaries

Você mudou o diretório atual do terminal para uma pasta que contém muitos binários e executáveis. Mas tem um binário que você quer executar, chamado "doom".

Vamos tentar executá-lo:

doom

Não deu certo porque a pasta "/media/CDROM/binaries" não está dentro da variável "$PATH", mesmo sendo o seu diretório de atuação. Isso é um problema que até nos acostumamos, mas que é chato é.

Então, como fazer para que eu possa executar coisas do diretório atual?

Resposta: simples, coloque o diretório atual na variável 'PATH'.

É só fazer o seguinte, adicione o seguinte diretório, separado por um ponto e vírgula:

./

Esse ponto e barra significam o diretório atual.

Por exemplo, meu diretório atual era:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lucas/bin

E ficou assim (notem o "./" no final):

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lucas/bin:./

Linux: Colocar diretório atual (corrent) no PATH
Notas:

1. Se quiser salvar as alterações, copie o 'PATH' para o arquivo "~/.bashrc". Acrescentando (ou modificando) a linha:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lucas/bin:./

2. Só serão procurados arquivos com propriedades de execução, ou seja, se você aplicar "cd" numa pasta de imagens e tentar "executar" alguma delas, não vai dar certo.

3. A ferramenta de alto completação, como o TAB, funciona para o diretório atual assim como para todos os diretórios do "$PATH".

4. Faça isso sempre que instalar uma distro Linux. É uma dica que DEVE ficar guardada bem no seu coração.

5. Jogue doom.

Outras dicas deste autor

Unindo arquivos divididos pelo hjsplit/winrar no Linux

Como configurar e excluir conta no Thunderbird [vídeo]

Como configurar o Apache para rodar uma aplicação WSGI básica

Acelerando a velocidade do seu servidor Apache 2.2

LightDM - Como exibir imagem de usuário na tela de login do Debian 8.7.1 (MATE)

Leitura recomendada

Logsave: Registrando comandos locais ou remotos

Abrindo o Eterm 'vidro fosco'

Usando o comando df

Vire "ninja" no Linux com curso grátis online

Configurando placa Realtek RTL8191SE-VA2 no Kismet (Ubuntu e similares)

  

Comentários
[1] Comentário enviado por removido em 27/11/2011 - 12:53h

Só um detalhe que esqueci de mencionar:
o bash procura primeiro um comando na ordem das pastas que estão em $PATH

ou seja, se você colocar o ./ no início do $PATH ele vai procurar primeiro um comando na pasta atual.
agora, se o ./ tiver lá no finalzinho o $PATH, o comando será procurado na pasta atual por último, esse é o recomendado para não ter problemas com comandos com nomes iguais

[2] Comentário enviado por hwarang em 28/11/2011 - 08:25h

O Linux não coloca o diretório corrente no PATH por padrão por problemas de segurança:
http://www.faqs.org/docs/Linux-mini/Path.html#s12

Portanto, caso você faça isso, lembre-se que esta assumindo um risco.

Minha dica é:
Não custa nada colocar um './' antes do comando quando se quer explicitamente rodá-lo do diretório corrente.
./doom



Contribuir com comentário