If-Koubou

De ce unele nume de fișiere și foldere Windows au un punct în fața lor?

De ce unele nume de fișiere și foldere Windows au un punct în fața lor? (Cum să)

În timp ce majoritatea dintre noi vedem doar nume normale de fișiere și foldere în sistemele noastre Windows, alte persoane s-ar fi confruntat cu ceva mai puțin neașteptat - nume de fișiere și dosare cu un punct în fața lor. De ce se întâmplă acest lucru? Astăzi, postul SuperUser Q & A are răspunsul la o întrebare foarte curioasă a cititorului.

Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.

Fotografie prin amabilitatea lui Domiriel (Flickr).

Intrebarea

Cititorul super-utilizator Niko Bellic dorește să știe de ce unele nume de fișiere și dosare Windows au un punct în fața lor:

De exemplu, în Documentele mele director pe sistemul meu Windows Am găsit următoarele dosare:

  • .ssh
  • .subversion

Este vorba despre o convenție de numire pe care nu o cunosc?

De ce unele nume de fișiere și dosare Windows au un punct în fața lor?

Răspunsul

Suprauperatorul contributor grawity are răspunsul pentru noi:

Această convenție de numire provine de la sistemele de operare asemănătoare Unix (cum ar fi Linux sau OSX) unde aceasta înseamnă a fișier ascuns sau director. Funcționează oriunde, însă utilizarea sa principală este de a ascunde fișierele de configurare din directorul dvs. de domiciliu (de ex. ~ / .cache / sau ~ / .plan) Ele sunt frecvent numite fișiere punct.

Dot fișiere ar putea, într - un fel, să fie numit un Unix tradițional echivalent cu Datele aplicatiei director pe Windows. Între timp, multe programe Linux sunt modificate pentru a respecta specificațiile directorului XDG de bază, mutându-le configurația ~ / .Config / și alte date către ~ / .Cache / și ~ / .Local / actiune /. Acest lucru îl face mai asemănătoare AppData \ Roaming și AppData \ Local.

Aveți aceste .ssh și .subversion directoarele de pe Windows, deoarece ați folosit anumite programe (în special OpenSSH și Subversion) care au fost portate să utilizeze API-uri de sistem Windows mai degrabă decât POSIX, dar nu au fost ajustate pentru alte convenții Windows.

Uneori, această adaptare este omisă intenționat pentru a ușura viața persoanelor care folosesc medii asemănătoare Unix, cum ar fi Cygwin, pe sistemele Windows. De exemplu, Cygwin instalează un set standard de instrumente asemănătoare Unixului ls, care ignoră Windows steag ascuns și doar onorează fișier punct nume. Este, de asemenea, mai ușor să se sincronizeze configurațiile între computerele individuale Windows și Linux / BSD / OSX, dacă acestea sunt partajate în aceeași locație.

Aceste fișiere sunt de obicei găsite în directorul de domiciliu al utilizatorului (adică /home/name/.ssh pe Linux sau pe C: \ Users \ nume \ .ssh pe Windows 7 și mai târziu). Este destul de rar pentru ei să fie pus în Documente sau Documentele mele subdirectoarele (acestea nu conțin în cele din urmă documente).

După cum scrie Rob Pike pe Google+, aceasta a fost o caracteristică accidentală:

Cu mult timp în urmă, întrucât proiectul sistemului de fișiere Unix era elaborat, intrările . și a apărut pentru a ușura navigarea. Nu sunt sigur, dar cred a intrat în timpul rescrierii Versiunii 2, când sistemul de fișiere a devenit ierarhic (a avut o structură foarte diferită de timpuriu). Când ați scris unul ls, totuși, aceste fișiere au apărut, astfel încât fie Ken, fie Dennis au adăugat un test simplu la program. A fost atunci în asamblare, dar codul în cauză era echivalent cu ceva de genul:

  • dacă (nume [0] == '.') continuați;

Această declarație a fost puțin mai scurtă decât ceea ce ar fi trebuit să fie, și anume:

  • dacă (strcmp (nume, ".") == 0 || strcmp (nume, "...") == 0) continuați;

Dar a fost ușor și au rezultat două lucruri.

În primul rând, a fost stabilit un precedent rău. Mulți alți programatori leneși au introdus bug-uri făcând aceeași simplificare. Fișierele actuale care încep cu perioadele sunt deseori sărite atunci când trebuie să fie contorizate.

În al doilea rând, și mult mai rău, ideea de a ascuns sau fișier punct a fost creat. În consecință, mai mulți programatori leneși au început să abandoneze fișierele în directorul de acasă al tuturor. Nu am instalat prea mult software pe computerul pe care îl folosesc pentru a tasta acest lucru, dar directorul meu de acasă are aproximativ o sută fișiere punct și nici măcar nu știu ce sunt majoritatea sau dacă sunt încă necesare. Fiecare evaluare a numelui fișierelor care trece prin directorul meu de acasă este încetinită de acest nămol acumulat.

Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.