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