De ce unele nume de fișiere și dosare Windows au un punct în fața lor?
Î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 neașteptat - nume de fișiere și dosare cu un punct în fața lor. De ce se întâmplă acest lucru? Postul de astăzi 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 web 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 foldere 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
- .subversiune
Este un fel de convenție de numire pe care nu o cunosc?
De ce unele nume de fișiere și foldere Windows au un punct în fața lor?
Răspunsul
Contribuția superutilizatorului Grawity are răspunsul pentru noi:
Această convenție de numire provine de la sisteme 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ă constă în ascunderea fișierelor de configurare din directorul de acasă (de ex. ~ / .cache / sau ~ / .plan) Ele sunt deseori numite fișiere punct.
Fișiere Dot 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 urma specificațiile directorului XDG, deplasâ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 .subversiune directoarele de pe Windows pentru că 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 utilizează medii asemănătoare Unix, cum ar fi Cygwin, pe sistemele Windows. De exemplu, Cygwin instalează setul 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ă sincronizați 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 ca ele să fie introduse în Documente sau Documentele mele subdirectoarele (în cele din urmă nu conțin documente).
După cum scrie Rob Pike pe Google+, aceasta a fost o caracteristică accidentală:
Cu mult timp în urmă, deoarece proiectarea sistemului de fișiere Unix a fost 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 la început). Când ați scris unul ls, totuși, aceste fișiere au apărut, deci 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 adesea 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 domiciliu 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 care sunt cele mai multe dintre ele 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 comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.