Cosa significa il percorso '/../'?


17

Ti chiedi dove un percorso simile a questo '/../' punta all'esterno di un file? Immagino che potrebbe essere qualcosa come specificare sempre la directory principale e quindi la directory principale relativa al file in cui è stata scritta?


1
Il genitore di root è root, quindi è lo stesso di /
Sami Kuhmonen,

1
Quindi intendi scrivere /../ è lo stesso di / then ...?
Eugene Lai,

1
Sì. Non puoi andare dal genitore di root, quindi è diretto al root stesso
Sami Kuhmonen,


/../è significativo solo se si trova all'interno di un percorso.
Amani Kilumanga,

Risposte:


32

Consente di scomporre /../pezzo per pezzo

Il primo /indica la radice del file system Questo è il livello più alto del file system

.. indica la cartella principale Tuttavia, poiché siamo al livello più alto, non possiamo andare più in alto, quindi siamo ancora nella cartella più in alto

l'aggiunta /alla fine indica una cartella. Questo non è mai obbligatorio, a meno che non si specifichi un percorso o un file della sottocartella. Quindi siamo ancora in cima alla maggior parte delle cartelle sul file system.

Quindi, /../non è diverso dalla digitazione/


24
Tranne quando sei in chroot, e il kernel è sufficientemente buggy che tali trucchi ti permettono di sfuggire al chroot. (Credo che fosse il caso anni fa, credo.)
user1686

8
La barra finale può essere significativa in alcuni casi. Ad esempio, se /exampleè un collegamento simbolico a una directory, ls -l /exampleverrà visualizzato il collegamento simbolico, mentre ls -l /example/verrà visualizzato il contenuto della directory.
Flimm,

potresti contrastare, ad cd ../abc esempio, dove ../fa la differenza. Immagino sia utile solo per percorsi relativi, non per percorsi assoluti.
barlop

1
@barlop ../può avere un effetto per percorsi assoluti: /foo/bar/../quux= /foo/quux. Alcuni esempi più utili: 1) rendersi conto che hai appena completato la scheda ha completato un nome di directory molto lungo, ma non era quello che volevi. ../potrebbe essere più veloce del backspacing 50 volte. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
8

1
@grawity Chiudere la ..via di fuga se l'implementazione chrootcome prigione è ovvio quanto chiudere la porta della stalla per tenere dentro gli animali; non ti perdi un caso del genere: la via di fuga più ovvia. Questo mi porta a sospettare che le prime chrootimplementazioni potrebbero non aver avuto l'inevitabilità come requisito .
Kaz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.