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



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

Фото любезно предоставлено Домириэль (Flickr).

Вопрос

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

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

  • .ssh
  • .subversion

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

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

Ответ

Ответ на этот вопрос есть у участника Grawity SuperUser:

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

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

У вас есть эти .ssh и .subversion каталоги в 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] == ‘.’) continue;

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

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

Но, эй, это было легко, и в результате вышло две вещи.

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

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


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

ПРОЧИТАЙТЕ СЛЕДУЮЩИЙ
  • › Функции и формулы в Microsoft Excel: в чем разница?
  • › Папке на компьютере 40 лет: как звезда Xerox создала рабочий стол
  • › Как найти упакованный Spotify 2021
  • › 5 сайтов, которые каждый пользователь Linux должен добавить в закладки
  • › Что такое защита от падений MIL-SPEC?
  • Киберпонедельник 2021: лучшие технические предложения