O que significa os pontos em um caminho? [duplicado]

8

Como "/a/./b/../../c/" é igual a /c ?

Eu vi isso como uma pergunta em um dos sites do Stack Exchange. Aparentemente, .. significa estourar a pilha (?). Por que isso acontece?

    
por 夢のの夢 13.12.2015 / 07:58

3 respostas

21

Assumir que a raiz se parece com:

/a/b
/c

Vamos dividi-lo em componenets:
/ - > root
/a - > em (a)
. - > ESTE caminho do diretório de /a/./ - > ainda em /a e /a/./b - > em /a/b e .. - > subir "um nível" em /a/./b/.. - > /a/b/.. - > /a e /a/./b/../.. - > /a/.. - > / e /a/./b/../../c - > /c

    
por 13.12.2015 / 08:15
4

No mundo * nix, cada diretório é um diretório filho de um diretório pai. Todo diretório tem um implícito '.' diretório que se refere a si mesmo e um diretório implícito '..' que se refere ao seu pai. Então, se você estiver em um diretório específico, e você alterar o diretório ( cd ) para '.' (comandos que começam com '$' podem ser executados em sua linha de comando!), você permanecerá no mesmo diretório:

$ pwd
/tmp/a/b
$ cd .
$ pwd
/tmp/a/b

Mas alterar o diretório para '..' é um:

$ cd ..
$ pwd
/tmp/a

E a alteração do diretório para '..' aumenta novamente:

$ cd ..
$ pwd
/tmp

O único diretório que é uma exceção a essa regra é o diretório raiz , que não possui um diretório pai:

$ cd ..
$ pwd
/
$ cd ..
$ pwd
/

Confira este tutorial em diretórios Unix para mais detalhes.

    
por 13.12.2015 / 11:17
1

/ é o seu diretório raiz. Tem uma estrutura de diretórios como,

/ 
___ /c
___ /a
______/b (child dir of a)
___ /other dirs

Agora, um único ponto. significa o mesmo diretório e pontos duplos (..) Significa o diretório pai.

Então, no seu exemplo, quando você usa. no caminho, ele permanece no mesmo diretório e quando você usa .. Ele volta para o diretório pai. Então, eventualmente, pulando, ele alcança a raiz (/), então é equivalente a / c

    
por 13.12.2015 / 09:57

Tags