Stavo lavorando nel mio terminale, quando ho sbagliato a scrivere cd
al root (/
). Accidentalmente, ho digitato //
e sono entrato nel terminale:
[email protected]://#
Quando digito pwd
, ricevo una risposta //
ma quando digito ls -s
ho la stessa lista di /
directory.
Quando ne digiti più di 2, ad es. ///
ottieni:
[email protected]:/#
Sempre 1 /
tranne 2. C'è qualche differenza e cos'è //
per?
Migliore risposta
/
è equivalente a //
Dalla specifica POSIX (enfasi aggiunta):
3.267 Nome percorso
Una stringa utilizzata per identificare un file. Nel contesto di
POSIX.1-2008, un percorso può essere limitato a {PATH_MAX} byte, incluso
il byte nullo di chiusura. Ha un inizio facoltativo <slash>
caratteri, seguiti da zero o più nomi di file separati da <slash>
caratteri. Un percorso può contenere facoltativamente uno o più <slash>
finali caratteri. Più <slash>
successivi i caratteri sono
considerati uguali a un <slash>
, ad eccezione del caso di
esattamente due <slash>
iniziali caratteri.
E:
4.12 Risoluzione del percorso
…
Un percorso costituito da un singolo <slash>
risolverà nella directory root
del processo. Un percorso nullo non deve essere risolto con successo
. Se un percorso inizia con due <slash>
successivi caratteri,
il primo componente che segue il <slash>
iniziale i caratteri possono essere
interpretati in un modo definito dall'implementazione, sebbene più di
due <slash>
iniziali i caratteri devono essere trattati come un unico <slash>
carattere.
Per una bella discussione sulle eccezioni (cygwin e directory) vedere:In che modo Linux gestisce più separatori di percorso consecutivi (/home////nomeutente///file)?