Наприклад, у My Documents, є такі папки:
.ssh
.subversion
Це якась угода про іменування, про яку я не знаю?
Наприклад, у My Documents, є такі папки:
.ssh
.subversion
Це якась угода про іменування, про яку я не знаю?
Відповіді:
Ця умова іменування походить від Unix-подібних операційних систем (таких як Linux або OS X), де вона означає "прихований" файл або каталог. Він працює в будь-якому місці, але його основне використання - приховування файлів конфігурації у вашому домашньому каталозі (наприклад, ~/.cache/або ~/.plan- їх часто називають "dotfiles").
Dotfiles певним чином можна назвати традиційним Unix, еквівалентним каталогу "AppData" в 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 і вшановує лише .dotfileімена. Також використання одного і того ж місця (наприклад <home>/.ssh) може полегшити синхронізацію конфігурації між комп'ютерами Windows та Linux / BSD / OSX.
Також: Зазвичай ці файли знаходяться в домашньому каталозі користувача , наприклад, в Linux або Windows 7+. Досить рідко їх розміщують у підкаталогах "Документи" або "Мої документи"./home/name/.sshC:\Users\name\.ssh
Як пише Роб Пайк у Google+ , це було випадково:
Давно, коли розроблялася конструкція файлової системи Unix, записи
.і..з'явилися, щоб полегшити навігацію. Я не впевнений, але я вважаю, що..увійшов під час перезапису версії 2, коли файлова система стала ієрархічною (вона мала зовсім іншу структуру на початку). Однак, коли один набрав ls, ці файли з’явились, тож Кен або Денніс додали до програми простий тест. Це було в асемблері, але код, про який йде мова, був еквівалентний приблизно такому:
if (name[0] == '.') continue;Це твердження було трохи коротшим, ніж воно мало бути, яким є
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;але ей, було легко.
Дві речі привели.
Спочатку був встановлений поганий прецедент. Дуже багато лінивих програмістів ввели помилки, зробивши те саме спрощення. Фактичні файли, що починаються з періодів, часто пропускаються, коли їх слід рахувати.
По-друге, і що набагато гірше, була створена ідея "прихованого" або "крапкового" файлу. Як наслідок, більш ліниві програмісти почали видаляти файли в домашній каталог кожного. У мене не все, що багато інстальовано на машині, яку я використовую для введення цього запису, але в моєму домашньому каталозі є близько ста точкових файлів, і я навіть не знаю, що більшість з них є, чи потрібні вони ще . Кожна оцінка імені файлів, що проходить через мій домашній каталог, сповільнюється цим накопиченим мулом.
lsє -aможливість перелічити всі файли.
LOGIN.COMі DECW$MAIL.DAT в вашому домашньому каталозі . (Я не впевнений, які інші системи були популярними в той час.) Unix був нещодавно створений; вона взагалі не мала ніяких конвенцій.
.."up dir"; Microsoft фактично рекламувала ці «розширені функції Unix».