Лишаем Linux девственности

Доброе утро друзья. Сейчас покажу как попасть в секретный каталог в Linux. И в 99%, ты никогда раньше в нём не был.

Для этого тебе понадобится портал, который уже есть в твоем дистрибутиве.

Запускаем Bash и вводим:

cd //

Опа-опа, нихуя!

user@server:/$ cd //
user@server://$

Видишь два слеша в промте? Поздравляю, дефлорация прошла успешно. Даже не нужно было вводить IDDQD, чтобы активировать «годмод».

И где это мы? В пизде! Ну а чо гадать, давай посмотрим:

user@server:/$ cd //
user@server://$
user@server:/$ pwd
//

Хм, понятнее не стало… Давай посмотрим что находится у нас в этом каталоге, делаем ls -la.

И что же мы видим? А видим мы содержимое корневой директории. Для чистоты эксперимента можешь запустить так ls -la /////// и получишь такой же результат.

Получается никакого секретного каталога нет? Получается так. Нас наебали? Расходимся. Не совсем.

Почему так? Откуда берется второй слэш?

POSIX в своём описании говорит, что три и более слешей могут быть заменены на один слеш. Нужно это для канонизации текущего рабочего каталога.

И сделано это для исторической совместимости. Некоторые версии Unix во времена динозавров использовали пути вида: //hostname/path для доступа к path на сервере //hostname.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Короче вся ответственность по двум слешам ложится на плечи дистрибутивов. И каждый дистрибутив вправе делать с ними всё, что захочет.

Пример: если в Cygwin выполнить cd // а затем ls, получишь ошибку:

ls: reading directory '.': Permission denied

Потому что Cygwin использует корень из // для определения //имени хоста/пути. А убунта с этим нормально уживается и выводит содержимое корневой директории.

А все что более 2х слешей, должно рерайтиться на один слеш. Такие дела!

Всех с пятницей и хороших выходных! Да и на выходные будут посты. На связи!