Che cos'è la directory "//"?


12

Su varie macchine linux puoi

cd /

e

cd //

La shell dirà che la directory corrente è '/' o '//' dopo aver usato il comando corrispondente.

Quindi la domanda è: qual è la differenza tra '/' e '//' e se la risposta è 'nessuna differenza', allora perché '//' viene mostrato in modo diverso da '/'

BTW

cd ///
cd ////
cd /////

Tutti i risultati nella shell indicano che la directory corrente è '/'

Ecco una sessione di esempio:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Questa sembra essere un'anomalia specifica di bash. Se provi cd //in csh o zsh e pwdmostrerà solo '/'
Doug Harris,

interessante - che fa luce su di esso
sylvanaar,

1
Per un confronto: cd //usr/bindà "// usr / bin", ma cd /usr//bindà "/ usr / bin" (in Bash).
In pausa fino a ulteriore avviso.

Risposte:


14

Chiediamo all'uomo stesso (Chester Ramey):

E10) Perché 'cd //' lascia $ PWD come '//'?

POSIX.2, nella sua descrizione di "cd", afferma che tre o più barre iniziali possono essere sostituite con una singola barra quando si canonicalizza la directory di lavoro corrente.

Questo, presumo, per compatibilità storica. Alcune versioni di Unix e dei primi file system di rete utilizzavano percorsi del modulo // nomehost / percorso per accedere a "percorso" sul server "nomehost".


Risposta molto migliore di quella (già abbastanza buona) di John T.
innaM

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.