Що таке каталог подвійної косої (//)?


29

Я помилково набрав cd //замість cd /. На мій подив, поточний каталог виявився як //.

Що це за каталог? Чому воно існує?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/

Відповіді:


42

//зазвичай те саме, що /. ///повинні бути такими ж, як /.

lsпоказав би вам, що cd //переніс вас у кореневу директорію, як cd /і у вас.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

Технічний спосіб підтвердити, що вони, безумовно, той самий каталог:

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

вони надрукують один і той же номер inode, тобто вони однакові.

Деталі горі задокументовані у специфікації роздільної здатності POSIX Pathname :

Ім'я шляху, що складається з однієї косої риски, має відповідати кореневому каталогу процесу. Недійсне ім'я шляху не вдалося вирішити. Ім'я шляху, що починається з двох послідовних косих рисочок, може бути інтерпретоване визначеним реалізацією способом, хоча більше двох провідних косих рис слід розглядати як одну проділу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.