O que significa o caminho '/../'?

17

Querendo saber onde um caminho parecido com este '/../' apontaria para fora de um arquivo? Eu estou supondo que pode ser algo como sempre especificando o diretório raiz e, em seguida, o diretório pai relativo ao arquivo em que foi gravado?

Eugene Lai
fonte
1
O pai de raiz é raiz por isso é o mesmo que /
Sami Kuhmonen
1
Então você quer dizer que escrever /../ é o mesmo que / então ...?
Eugene Lai
1
Sim, ele é. Você não pode ir para o pai da raiz para que ele é direcionado para enraizar-se
Sami Kuhmonen
3
No entanto, veja unix, diferença entre o caminho que começa com '/' e '//' .
G-Man Diz 'Reinstate Monica'
/../só é significativo se estiver dentro de um caminho.
Amani Kilumanga

Respostas:

32

Permite quebrar /../peça por peça

O primeiro /indica a raiz do sistema de arquivos Este é o nível mais alto do sistema de arquivos

.. significa a pasta pai No entanto, como estamos no nível mais alto, não podemos subir mais, por isso ainda estamos na pasta mais alta

adicionar /no final indica uma pasta. Isso nunca é obrigatório, a menos que seja especificado um caminho ou arquivo de subpasta. Portanto, ainda estamos na pasta superior do sistema de arquivos.

Então, /../não é diferente de digitar/

Keltari
fonte
24
Exceto quando você está no chroot, e o kernel é suficientemente problemático para que esses truques permitam que você escape do chroot. (Ela costumava ser nos anos caso atrás, eu acho.)
grawity
8
A barra final pode ser significativa em alguns casos. Por exemplo, se /examplefor um link simbólico para um diretório, ls -l /exampleexibirá o link simbólico, enquanto ls -l /example/exibirá o conteúdo do diretório.
Flimm 29/09/16
você pode contrastar com, por exemplo, cd ../abc onde ../faz a diferença. Eu acho que só é útil para caminhos relativos, não para caminhos absolutos.
barlop 29/09/16
1
@barlop ../pode ter um efeito para caminhos absolutos: /foo/bar/../quux= /foo/quux. Alguns exemplos mais úteis: 1) perceber que você acabou de tabular completou um nome de diretório muito longo, mas não era o que você queria. ../pode ser mais rápido que retroceder 50 vezes. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
8bittree
1
@ grrawity Fechar o ..caminho de fuga se a implementação chrootcomo prisão for tão óbvio quanto fechar a porta do celeiro para manter os animais; você não perde um caso como esse: o caminho de fuga mais óbvio. Isso me leva a suspeitar que as chrootimplementações iniciais talvez não tivessem a inevitabilidade como requisito .
Kaz