Descubra onde $ PATH está definido

5

Eu instalei recentemente um sistema Arch-Linux. Se eu digitar

echo $PATH

aponta (entre outros) para um diretório dentro do meu /home/user/dir eu consigo lembrar que eu montei em algum lugar. Eu tenho isso como usuário root também, então não pode estar em ~/.bashrc e não está tão bem em /root/.bashrc . Também procurei dentro de /etc/profile e /etc/bash.bashrc , mas também não consegui encontrá-lo.

Existe uma maneira de descobrir onde está definido?

    
por Rafael T 01.07.2012 / 22:08

3 respostas

5

Tente pesquisar pelo diretório em todos os arquivos em /etc :

sudo grep -r "/home/user/dir" /etc

A opção -r faz com que grep pesquise /home/user/dir no conteúdo de todos os arquivos em /etc e seus subdiretórios.

De grep (1) - Página man do Linux :

-d ACTION, --directories=ACTION

If an input file is a directory, use ACTION to process it. By default, ACTION is read, which means that directories are read just as if they were ordinary files. If ACTION is skip, directories are silently skipped. If ACTION is recurse, grep reads all files under each directory, recursively; this is equivalent to the -r option.

Se isso falhar, você pode simplesmente estender a pesquisa para arquivos all :

sudo grep -r "/home/user/dir" /

Ou você pode pesquisar todos os arquivos que modificam a variável PATH :

sudo grep -r "PATH=" /
    
por 01.07.2012 / 22:56
0

Geralmente é uma má idéia colocar diretórios de usuários no caminho global como root;) Você verificou o arquivo /etc/environment ?

    
por 01.07.2012 / 22:28
0

@Dennis me aponta para uma boa ideia! Eu procurei dentro do meu /etc e achei, mas com outro comando, como seu comando está procurando apenas por nomes de arquivos (tanto quanto eu entendo).

O que eu usei com sucesso foi

find / -type f -exec grep -i /home/user/dir '{}' \; -print
    
por 02.07.2012 / 00:34