Colocar diretório atual (corrent) no PATH

Publicado por Perfil removido em 27/11/2011

[ Hits: 18.387 ]

 


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

sed - Eliminando linhas em branco

Apresentando a distribuição GNU/Linux NetRunner 14.2

AptonCD no Ubuntu: FATAL - Failed to fork

NCFTP - Upload recursivo via FTP em apenas uma linha

Criando uma calculadora empresarial no Lazarus

Leitura recomendada

Auto correção no comando cd

Verificando processos com o PS

Eliminando linhas em branco

Scaneando IP's, retornando NetBIOS ou endereços MAC.

Listando os últimos comandos executados no bash

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts