GNU/Linux >> Linux Esercitazione >  >> Linux

Percorsi Assoluti / Canonici / Relativi?

Qual è la differenza tra cammini assoluti/canonici/relativi?

Immagino che l'assoluto inizi con un / . Può contenere /../ ?

Un percorso canonico è diverso da un percorso assoluto in quanto non può contenere /../ ?

È foo un percorso relativo?

Google posix canonical path non è uscito molto... Quali sono i riferimenti POSIX per questi termini?

Risposta accettata:

POSIX definisce "percorso assoluto" come segue:

Un percorso che inizia con uno o più di due caratteri

e "percorso relativo" come segue:

Un percorso che non inizia con un carattere .

Questo è tutto ciò che c'è da fare per i percorsi relativi e assoluti.

I percorsi canonici non sono definiti in POSIX, ma il termine di solito si riferisce a percorsi comparabili, cioè se si prendono due percorsi per un oggetto del file system e li si converte in forma canonica, il risultato dovrebbe essere identico se e solo se i due oggetti del file system sono identici. Ciò comporta la rimozione di ".." come dici tu, ma significa anche risolvere i collegamenti simbolici; quindi un percorso canonico potrebbe essere definito come

Un percorso i cui componenti sono tutte directory o file reali, escluso "." e “..”, e le cui barre non vengono ripetute

In termini POSIX, un percorso canonico è effettivamente un percorso risolto (purché accetti che i percorsi canonici possono essere determinati solo per oggetti del file system esistenti).

Nota che questo funziona solo perché le directory con collegamento reale non sono consentite...

Quindi, per rispondere alle tue domande:

  • un percorso assoluto può contenere /../;
  • un percorso canonico non può contenere /../ , né può contenere /./ , // (tranne probabilmente in prima posizione), o collegamenti simbolici;
  • foo è un percorso relativo.

(Pedantamente, sono tutti nomi di percorso , non solo percorsi.)


Linux
  1. Che cos'è un tag canonico?

  2. Rsync:come trasferire i collegamenti simbolici assoluti?

  3. Zsh/bash:espandere i percorsi relativi negli argomenti dei comandi utilizzando le regole della struttura della directory logica prima dell'esecuzione?

  4. Come escludo percorsi assoluti per tar?

  5. Rimuovi i percorsi ridondanti dalla variabile $PATH

Navigazione nel filesystem con percorsi relativi alla riga di comando

Come faccio a sfuggire agli spazi nei percorsi per Scp in Linux?

Percorso assoluto vs relativo in Linux:qual è la differenza?

Come ottengo la directory assoluta di un file in bash?

Imposta il tempo relativo utilizzando la riga di comando

Implicazioni sulla sicurezza dell'utilizzo di percorsi relativi nella variabile ambientale PATH?