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)?