1

Большинство приложений, которые я обычно устанавливаю (opam, cargo, vscode, julia, ...), хранят локальное хранилище в моей домашней папке. Есть ли причина для этого предпочтения? Или лучше, есть ли недостатки у альтернатив?

Например, иногда предлагается, чтобы такие файлы были расположены в /var или в ~ /.local /share, но могут быть проблемы или неудобства при использовании этих папок в приложении "cross-distro".

Знаете ли вы такие возможные проблемы?

[любой ответ на любой из трех вопросов, которые я задавал здесь, был бы удовлетворительным]

1 ответ1

1

В посте Google+ Роба Пайка " Урок в ярлыках" дается следующее объяснение:

Давным-давно, когда разрабатывался дизайн файловой системы Unix, записи . и .. появился, чтобы облегчить навигацию. Я не уверен, но я верю .. вошел во время переписывания Версии 2, когда файловая система стала иерархической (вначале она имела совершенно другую структуру). Однако, когда вы набрали ls , эти файлы появились, поэтому Кен или Деннис добавили в программу простой тест. Тогда это было на ассемблере, но рассматриваемый код был эквивалентен примерно так:

    if (name[0] == '.') continue;

Это утверждение было немного короче, чем должно было быть,

    if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

но эй, это было легко.

Две вещи привели.

Во-первых, был создан плохой прецедент. Многие другие ленивые программисты вносили ошибки, делая то же самое упрощение. Фактические файлы, начинающиеся с периодов, часто пропускаются, когда они должны быть подсчитаны.

Во-вторых, что гораздо хуже, была создана идея "скрытого" или "точечного" файла. Как следствие, более ленивые программисты начали сбрасывать файлы в домашний каталог каждого. У меня не так много всего установлено на машине, которую я использую, чтобы напечатать это, но мой домашний каталог содержит около ста файлов, и я даже не знаю, что из них большинство или они все еще нужны , Каждая оценка имени файла, которая проходит через мой домашний каталог, замедляется этим накопленным осадком.

Я почти уверен, что концепция скрытого файла была непреднамеренным следствием. Это была конечно ошибка.

(Для тех, кто возражает, что точечные файлы служат какой-либо цели, я не оспариваю это, но возражаю, что это файлы, которые служат цели, а не соглашение об их именах. С таким же успехом они могут быть в $ HOME/cfg или $ HOME/lib, что мы и сделали в Plan 9, в котором не было точечных файлов. Уроки можно извлечь.)

Итак, я понимаю, что

Когда эти "точечные файлы" стали невидимыми, к ним присоединились другие программисты и решили, что место для хранения их ценных данных конфигурации находится в точечных файлах вместе с . и .. файлы. Поскольку в начале файловая иерархия не была очень развитой, все они оказались в каталоге $ HOME, и довольно быстро это стало неписаным соглашением, которому все подчинялись, следуя указаниям отцов-основателей.

Это привело к таким чудовищам как:

образ

Ссылка :

История Linux: как точечные файлы стали скрытыми

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .