Начална » как да » Защо някои имена на файлове и папки в Windows имат точка пред тях?

    Защо някои имена на файлове и папки в Windows имат точка пред тях?

    Докато повечето от нас виждат обикновени имена на файлове и папки в нашите Windows системи, други хора може да са срещнали нещо малко по-неочаквано - имена на файлове и папки с точка пред тях. Защо се случва това? Днешната публикация за въпроси и отговори на SuperUser има отговор на много любопитен въпрос на читателя.

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

    Снимката е предоставена от Domiriel (Flickr).

    Въпроса

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

    Например в Моите документи директория на моята Windows система Намерих следните папки:

    • .SSH
    • .подривна дейност

    Това ли е някаква конвенция за именуване, за която не съм запознат?

    Защо някои имена на файлове и папки на Windows имат точка пред тях?

    Отговорът

    Граубитът на сътрудника на SuperUser има отговор за нас:

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

    Дот файлове би могло по някакъв начин да се нарече традиционния Unix, еквивалентен на AppData директория в 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 скрит флаг и само чест на dot файл имена. Също така е по-лесно да синхронизирате конфигурациите между компютрите на Windows и Linux / BSD / OSX на отделни лица, ако са споделени на едно и също място.

    Тези файлове обикновено се намират в домашната директория на потребителя (т.е.. /home/name/.ssh на Linux или C: \ Users \ името \ .ssh в Windows 7 и по-нови версии). Рядко се срещат в тях Документи или Моите документи поддиректории (в края на краищата те не съдържат документи).

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

    Много отдавна, когато се изработи дизайна на файловата система Unix, записите . и ... се появи, за да улесни навигацията. Не съм сигурен, но вярвам ... влезе по време на пренаписването на Версия 2, когато файловата система стана йерархична (в началото имаше много различна структура). Когато се пише LS, Тези файлове обаче се появиха, така че или Кен или Денис добавиха прост тест към програмата. Тогава беше в асемблер, но въпросният код беше еквивалентен на нещо подобно:

    • ако (име [0] == '.') продължи;

    Това твърдение беше малко по-кратко от това, което трябваше да бъде, което е:

    • if (strcmp (име, “.”) == 0 || strcmp (име, “…”) == 0) продължава;

    Но хей, това беше лесно и се получиха две неща.

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

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


    Имате ли какво да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.