Домашняя » как » Почему некоторые имена файлов и папок Windows имеют перед ними точку?

    Почему некоторые имена файлов и папок Windows имеют перед ними точку?

    Хотя большинство из нас просто видят обычные имена файлов и папок в наших системах Windows, другие люди, возможно, столкнулись с чем-то более неожиданным - именами файлов и папок с точкой перед ними. Почему это происходит? Сегодняшний пост SuperUser Q & A содержит ответ на очень любопытный вопрос читателя..

    Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..

    Любезность фотографии Domiriel (Flickr).

    Вопрос

    Читатель SuperUser Нико Беллик (Niko Bellic) хочет знать, почему перед некоторыми именами файлов и папок Windows стоит точка:

    Например, в Мои документы каталог в моей системе Windows, я нашел следующие папки:

    • .SSH
    • .диверсия

    Это какое-то соглашение об именах, о котором я не знаю?

    Почему в некоторых именах файлов и папок Windows перед ними стоит точка?

    Ответ

    SuperUser вкладчик благодарность имеет ответ для нас:

    Это соглашение об именах происходит от Unix-подобных операционных систем (таких как Linux или OSX), где оно означает скрытый файл или же каталог. Он работает где угодно, но его основное назначение - скрыть файлы конфигурации в вашем домашнем каталоге (т.е.. ~ / .cache / или ~ / .plan) Их часто называют точечные файлы.

    Точечные файлы в некотором смысле, можно назвать традиционным Unix, эквивалентным Данные приложения каталог в Windows. Между тем, многие программы Linux изменяются в соответствии со спецификацией базового каталога XDG, перенося свою конфигурацию в ~ / .Config / и другие данные для ~ / .Cache / а также ~ / .Local / доля /. Это делает его более похожим на AppData \ Roaming а также AppData \ Local.

    У вас есть эти .SSH а также .диверсия каталоги в Windows, потому что вы использовали некоторые программы (в частности, OpenSSH и Subversion), которые были портированы для использования системных API-интерфейсов Windows, а не POSIX, но не были настроены для некоторых других соглашений Windows.

    Иногда эту адаптацию намеренно пропускают, чтобы облегчить жизнь людям, которые используют Unix-подобные среды, такие как Cygwin, в своих системах Windows. Например, Cygwin устанавливает стандартный набор Unix-подобных инструментов, таких как Ls, который игнорирует Windows скрытый флаг и только чтит точечный файл имена. Кроме того, проще синхронизировать конфигурации между компьютерами Windows и Linux / BSD / OSX, если они находятся в одном месте..

    Эти файлы обычно находятся в домашнем каталоге пользователя (т.е.. /home/name/.ssh в Linux или C: \ Users \ имя \ .ssh в Windows 7 и более поздних версиях). Их довольно редко помещают в документы или же Мои документы подкаталоги (в конце концов, они не содержат документов).

    Как пишет Роб Пайк в Google+, это была случайная особенность:

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

    • if (name [0] == '.') продолжить;

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

    • if (strcmp (name, «.») == 0 || strcmp (name, «…») == 0) продолжить;

    Но эй, это было легко и две вещи привели.

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

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


    Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.