Por que eu tenho que digitar ./ ​​ao executar scripts no meu diretório atual? [duplicado]


0

Possível Duplicar:
Por que é. não no caminho por padrão?

Esta questão pode ser trivial, mas eu estou querendo saber por que eu tenho que digitar o ponto ea barra antes do nome do meu script, a fim de executá-lo, mesmo que ele esteja localizado no meu diretório atual.

./my_script.sh

Sempre que eu digito sem o ponto e a barra:

my_script.sh

Acabei de receber -bash: cloud_sync.sh: comando não encontrado

Qual é a razão por trás de colocar o ./ na frente de um nome de script?

Obrigado.


Estou atrasado para a festa, mas você pode criar um link simbólico ( ln -s /path/to/orig.sh / usr / bin / orig ) para a pasta / usr / bin do diretório de scripts (/ usr / bin está no seu diretório $ PATH) e, em seguida, você pode simplesmente digitar my_script (até mesmo concluir a tabulação).
nerdwaller

Respostas:


1

Você precisa ter seu diretório atual em seu PATH, export PATH=${PATH}:.


2
Observe que ter seu diretório atual no seu caminho é considerado um risco de segurança. Há uma boa razão para isso não ser o padrão em sistemas multiusuários.
Hennes

uma maneira melhor seria colocar scripts de usuário em ~ / bin e adicionar isso à sua variável PATH.
l1z22

Eu adicionei o diretório atual como o último caminho, já que é um pouco mais seguro, então, primeiro. O melhor é obviamente ser explícito e tê-los em ~ / bin.
Jimmy Hedman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.