O que são “.” e “..” em um diretório?

13

Com base na pergunta: Como tornar o uso do prompt de comando menos doloroso , quais são as entradas . e .. na resposta mais votada? Eu vejo isso quando eu faço um comando dir , mas não é visível para o usuário na forma de um arquivo.

Caso você não saiba o que quero dizer, aqui está um exemplo:

.
..
Su.exe
Sup.txt
SuperUser.COM
    
por Community 08.09.2009 / 03:08

4 respostas

36

é o diretório atual, enquanto .. significa o diretório pai. Isso torna as coisas mais rápidas na linha de comando, para que você não precise digitar caminhos completos.

exemplo:

sobe 2 diretórios:

cd ..\..\

ou em um sistema baseado em UNIX, para executar binários executáveis no diretório atual:

./program

Muitos scripts UNIX também serão utilizados. para representar o diretório atual, a fim de procurar por arquivos, por exemplo (Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

É muito mais portátil se você quiser mover o script para diferentes diretórios ou sistemas, já que um nome de diretório não é codificado.

    
por 08.09.2009 / 03:08
9

O .. é usado para navegar pela hierarquia do sistema de arquivos. É útil quando você não quer digitar um caminho longo, ou quando escreve um script / programa que não sabe exatamente onde ele será instalado, mas sabe que ../media/ deve conter todas as imagens / vídeos / ícones etc.

O ponto único . é útil no linux onde você deseja executar um executável no diretório atual para digitar ./a.out , porque o shell de comando, por padrão, não procura arquivos executáveis no diretório atual (por motivos de segurança ).

O ponto único . também é usado se você quiser passar o diretório atual como um argumento para um comando.

    
por 08.09.2009 / 05:08
5

é o diretório atual. Você raramente precisa usar isso; a maioria dos comandos assumirá o diretório atual. O .. é o próximo nível acima; este é um atalho bastante útil. Se você estiver em C: \ foo \ bar e quiser ir para C: \ foo \ bar2, poderá dizer

cd ..\bar2

e você estará em C: \ foo \ bar2. Se você não quer ir ao bar2, mas só quer rodar C: \ foo \ bar.exe, então você pode dizer

..\bar.exe

ou     ..\Barra para executá-lo sem voltar ao diretório pai. Claro, isso é mais útil quando você representa um caminho mais longo que C: \ foo (como "C: \ Users \ Daniel \ My Dropbox \".

    
por 08.09.2009 / 04:45
3

Eles representam:

.

O diretório atual

.. 

Representa o diretório pai

Então, se você tiver o executável "su.exe" em:

  • Variável de ambiente do seu caminho (digamos C: \ MyExecutables \ su.exe)
  • Seu diretório atual
  • Seu diretório pai

Você pode executar cada um assim:

 su.exe  

Executa o que está no caminho

.\su.exe 

Executa o que está no diretório atual

..\su.exe

Executa aquele no diretório pai.

    
por 09.09.2009 / 05:20

Tags