O que o './' faz em um comando como './manage.py' ou './bin/buildout'? [duplicado]

0

Exemplo: Para rodar um servidor django eu uso: python manage.py runserver

Mas algumas pessoas parecem usar ./manage.py runserver . Este comando parece fazer o mesmo que o anterior.

O que exatamente a parte ./ faz?

    
por Bentley4 13.12.2012 / 12:03

4 respostas

4

. é o caminho do diretório atual.
Cada diretório sempre tem dois arquivos especiais, . e .. , onde primeiro representa a si mesmo, enquanto o segundo representa o diretório pai.

Ao escrever ./manage.py runserver , você está executando o comando manage.py com o argumento runserver . Para ver o que acontece quando você executa manage.py , verifique qual é o conteúdo do arquivo com less manage.py .

Para resumir, não deve haver nenhuma diferença em ambos os casos, a menos que a versão do python indicada no manage.py seja diferente da versão padrão do python. O python usado em manage.py pode ser visto na primeira linha.

    
por 13.12.2012 / 12:19
3

O ./ informa ao shell que você está se referindo a um arquivo no diretório atual. Se você quiser chamar um programa como backup e este for um binário disponível em um dos program directories no sistema, o shell executaria por padrão este binário.

No entanto, você pode ter estado em um diretório de seus próprios programas que também possuísse um binário chamado backup . Você pode, portanto, nem sequer perceber que o sistema estava realmente executando um binário completamente diferente.

Ao usar ./backup , você está especificando que deseja que o sistema use o binário no diretório de trabalho atual, em oposição a um disponível nos diretórios do programa.

Você pode testar isso usando o comando whereis do Linux, que neste exemplo pode especificar que backup está realmente em /usr/bin/backup , em vez de talvez ~/backup .

    
por 13.12.2012 / 12:19
1

A principal razão para o uso do prefixo ./ é que o diretório atual não está na variável $ PATH. Pelo menos não deveria ser, como no windows, onde você tem um ;. no final do PATH.

    
por 13.12.2012 / 12:20
0

./ é um método breve de fazer uma operação a partir do diretório atual.

../ é um método curto para "subir" uma pasta antes de inserir o nome da pasta fornecido.

    
por 13.12.2012 / 12:09