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

    Чому деякі назви файлів і папок Windows мають точку перед ними?

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

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

    Фото люб'язно надано Domiriel (Flickr).

    Питання

    Читач SuperUser Ніко Беллік хоче знати, чому у деяких файлах і папках Windows є крапка перед ними:

    Наприклад, в Мої документи я знайшов такі папки:

    • .ssh
    • .підривна дія

    Чи є це якимось назвою, що я не знаю?

    Чому деякі файли і імена папок Windows мають крапку перед ними?

    Відповідь

    Гравітет учасника SuperUser має відповідь для нас:

    Ця угода про найменування походить від Unix-подібних операційних систем (наприклад, Linux або OSX), де це означає a прихований файл або каталог. Він працює в будь-якому місці, але його основне використання полягає в прихованні конфігураційних файлів у вашому домашньому каталозі (тобто. ~ / .cache / або ~ / .plan) Вони часто називаються файли точок.

    Файли точок можна, у певному сенсі, назвати традиційним Unix, еквівалентним Дані програми в Windows. Тим часом багато програм Linux змінюються для того, щоб слідувати специфікації базового каталогу XDG, переміщуючи їх конфігурацію ~ / .config / та інші дані для ~ / .cache / і ~ / .local / share /. Це робить його більш схожим AppData Роумінг і Місцеві.

    У вас є ці .ssh і .підривна дія каталоги в Windows, оскільки ви використовували деякі програми (зокрема, OpenSSH і Subversion), які були перенесені для використання системних API Windows, а не POSIX, але не були скориговані для деяких інших угод Windows..

    Іноді ця адаптація пропускається навмисно, щоб полегшити життя людям, які використовують Unix-подібні середовища, такі як Cygwin на своїх системах Windows. Наприклад, Cygwin встановлює стандартний набір Unix-подібних інструментів ls, який ігнорує Windows прихований прапор і тільки шанують файлу імена. Також легше синхронізувати конфігурації між комп'ютерами Windows і Linux / BSD / OSX окремих користувачів, якщо вони спільно використовуються в одному місці.

    Ці файли зазвичай знаходяться в домашньому каталозі користувача (тобто. /home/name/.ssh на Linux або C: Користувачі \ t на Windows 7 і пізніших версіях). Досить рідко їх ставити Документи або Мої документи підкаталоги (вони взагалі не містять документів).

    Як пише Роб Пайк у Google+, це була випадкова функція:

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

    • якщо (ім'я [0] == '.') продовжується;

    Ця заява була трохи коротшою, ніж вона повинна була бути, а саме:

    • if (strcmp (name, “.”)) == 0 || strcmp (ім'я, “…”) == 0) продовжувати;

    Але гей, це було легко, і вийшли дві речі.

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

    По-друге, і набагато гірше, ідея а приховано або файлу було створено. Як наслідок, більш ледачі програмісти почали скидати файли в домашній каталог кожного. Я не маю багато програмного забезпечення, встановленого на комп'ютері, який я використовую, щоб ввести його, але мій домашній каталог має близько ста файли точок і я навіть не знаю, що таке більшість з них, чи вони все ще потрібні. Кожна оцінка імені файлу, яка проходить через домашній каталог, сповільнюється цим накопиченим шламом.


    Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.