В посте Google+ Роба Пайка " Урок в ярлыках" дается следующее объяснение:
Давным-давно, когда разрабатывался дизайн файловой системы Unix, появились
.
и..
появились записи, облегчающие навигацию. Я не уверен, но я верю, что это..
произошло во время переписывания Версии 2, когда файловая система стала иерархической (в начале у нее была совсем другая структура). Однако, когда кто-то печаталls
, эти файлы появлялись, поэтому Кен или Деннис добавили в программу простой тест. Тогда это было на ассемблере, но рассматриваемый код был эквивалентен примерно так:if (name[0] == '.') continue;
Это утверждение было немного короче, чем должно было быть,
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
но эй, это было легко.
Две вещи привели.
Во-первых, был создан плохой прецедент. Многие другие ленивые программисты вносили ошибки, делая то же самое упрощение. Фактические файлы, начинающиеся с периодов, часто пропускаются, когда они должны быть подсчитаны.
Во-вторых, что гораздо хуже, была создана идея «скрытого» или «точечного» файла. Как следствие, более ленивые программисты начали сбрасывать файлы в домашний каталог каждого. У меня не так много всего установлено на машине, которую я использую, чтобы напечатать это, но мой домашний каталог содержит около ста файлов точек, и я даже не знаю, что из них большинство или они все еще нужны, Каждая оценка имени файла, которая проходит через мой домашний каталог, замедляется этим накопленным осадком.
Я почти уверен, что концепция скрытого файла была непреднамеренным следствием. Это была конечно ошибка.
(Для тех, кто возражает, что точечные файлы служат какой-то цели, я не оспариваю это, но считаю, что это файлы, которые служат цели, а не соглашению об их именах. Они могут быть так же легко находиться в $ HOME / cfg или $ HOME / lib, что мы и сделали в Plan 9, у которого не было файлов точек. Уроки можно извлечь.)
Итак, я понимаю, что
Поскольку эти «точечные файлы» стали невидимы, другими программисты вскочили и решили, что место для хранения своих драгоценных данных конфигурации было в доте файлов прямо вместе с .
и ..
файлами. Поскольку в начале файловая иерархия не была очень развитой, все они оказались в каталоге $ HOME, и довольно быстро это стало неписаным соглашением, которому все подчинялись, следуя указаниям отцов-основателей.
Это привело к таким чудовищам как:
Ссылка :