Pracoval jsem ve svém terminálu, když jsem při cd napsal chybně do rootu (/ ). Náhodou jsem zadal // a dostal jsem se do terminálu:
[email protected]://#
Když napíšu pwd , dostávám odpověď // ale když napíšu ls -s mám stejný seznam jako v / adresář.
Když zadáte více než 2, tj. /// dostanete:
[email protected]:/#
Vždy 1 / kromě 2. Existuje nějaký rozdíl a co je // pro?
Nejlepší odpověď
/ je ekvivalentní //
Ze specifikace POSIX (zvýraznění přidáno):
3.267 Cesta
Řetězec, který se používá k identifikaci souboru. V kontextu
POSIX.1-2008 může být název cesty omezen na {PATH_MAX} bajtů, včetně
ukončovacího prázdného bajtu. Má volitelný začátek<slash>znaků, za nimiž následuje nula nebo více názvů souborů oddělených<slash>znaky. Cesta může volitelně obsahovat jeden nebo více koncových<slash>znaky. Více po sobě jdoucích<slash>znaky jsou
považovány za stejné jako jeden<slash>, s výjimkou případu
přesně dvou úvodních<slash>znaky.
A:
4.12 Rozlišení názvu cesty
…
Cesta skládající se z jednoho<slash>se přenese do kořenového
adresáře procesu. Nulová cesta nebude úspěšně
vyřešena. Pokud cesta začíná dvěma po sobě jdoucími<slash>znaky,
první složka za úvodním<slash>znaky mohou být
interpretovány způsobem definovaným implementací, i když více než
dva úvodní<slash>znaky budou považovány za jeden<slash>postava.
Pěknou diskuzi o výjimkách (cygwin a adresáře) najdete v:Jak linux zpracovává více po sobě jdoucích oddělovačů cest (/home////uživatelské jméno///soubor)?