Encontre um link simbólico ou um registro em “~ / .bashrc” para um arquivo

0

Eu tenho algum comando que posso executar diretamente do terminal:

my_command

e corre bem. No entanto, quero desabilitá-lo para ser executado dessa maneira. Eu sei onde ele está localizado:

which my_command

e me fornece a localização do arquivo my_command . No entanto, como faço para descobrir onde é um link simbólico apontando para ele e deixá-lo correr vai terminal sem especificar o caminho completo? Ou um registro em um arquivo como ~/.bashrc . onde mais eu procuro isso?

Procurei um link ou um registro para my_command em /usr/bin e ~/.bashrc , mas não encontrei nada. Mas também pode significar que eu simplesmente não consegui encontrá-lo.

    
por Oskar K. 26.11.2013 / 09:20

2 respostas

4

Eu acho que você pode estar olhando para o caminho errado. O shell bash não olha apenas para /usr/bin , mas para um conjunto inteiro de diretórios:

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

Seu comando deve estar em um dos diretórios ou ter uma função / apelido que o chama. Para esses casos, você pode preferir type :

$ type ls
ls is aliased to 'ls --color=auto'
$ type jobs
jobs is a shell builtin
$ type apt-get
apt-get is /usr/bin/apt-get
    
por Braiam 26.11.2013 / 09:35
1

Existem mais diretórios do que apenas /usr/bin procurando comandos para serem executados. A lista completa é salva na variável $PATH . Para ver seu conteúdo, execute echo $PATH .

Seu script (ou um link simbólico para ele) deve estar em um desses diretórios.

UPDATE : Infelizmente, a variável $PATH pode ser definida em qualquer arquivo originado pelo shell. Bons locais para começar a procurar seriam /etc/environment , /etc/profile , /etc/bashrc , ~/.bashrc e ~/.bash_profile . Além disso, algumas pessoas recomendam a configuração de $PATH em /etc/X11/xsession.d/90environment , portanto, verificar também pode ajudar.

    
por drc 26.11.2013 / 09:28