/ / Hvorfor har noen Windows-fil- og mappenavn et punktum foran seg?

Hvorfor har noen Windows-fil- og mappenavn et punktum foran seg?

hvorfor-gjør-noe-windows-fil-og-mappe-navn-ha-en-dot-i-front-of-dem-00

Mens de fleste av oss bare ser normal fil og mappenavn på Windows-systemene våre, kan andre mennesker ha opplevd noe mer uventet - fil- og mappenavn med et prikk foran seg. Hvorfor skjer dette? Dagens SuperUser Q & A-innlegg har svaret på et veldig nysgjerrig lesers spørsmål.

Dagens spørsmål og svar øker oss med tillatelse fra SuperUser - en underavdeling av Stack Exchange, en samfunnsdrevet gruppe av spørsmål og svar på nettsteder.

Foto med tillatelse fra Domiriel (Flickr).

Spørsmålet

SuperUser-leser Niko Bellic vil vite hvorfor noen Windows-fil- og mappenavn har en prikk foran seg:

For eksempel i Mine dokumenter katalogen på Windows-systemet mitt. Jeg har funnet følgende mapper:

  • .ssh
  • .subversion

Er dette en slags navnekonvensjon som jeg ikke er klar over?

Hvorfor har noen Windows-fil- og mappenavn et prikk foran seg?

Svaret

SuperUser-bidragsyter grawity har svaret for oss:

Denne navnekonvensjonen kommer fra Unix-lignende operativsystemer (for eksempel Linux eller OSX) der det betyr a skjult fil eller katalog. Det fungerer hvor som helst, men den primære bruken er å skjule konfigurasjonsfiler i hjemmekatalogen din (dvs. ~ / .cache / eller ~ / .plan) De blir ofte kalt prikkfiler.

Prikkfiler kan på sett og vis kalles den tradisjonelle Unix tilsvarer AppData katalog på Windows. I mellomtiden blir mange Linux-programmer endret for å følge XDG-basiskatalogspesifikasjonen, og flytte konfigurasjonen til ~ / .Config / og andre data til ~ / .Cache / og ~ / .Local / share /. Dette gjør det mer likt AppDataRoaming og AppDataLocal.

Du har disse .ssh og .subversion kataloger på Windows fordi du har brukt noenprogrammer (spesifikt OpenSSH og Subversion) som har blitt portert for å bruke Windows-system API-er i stedet for POSIX, men som ikke er justert for noen andre Windows-konvensjoner.

Noen ganger hoppes denne tilpasningen overmed vilje for å gjøre livet enklere for folk som bruker Unix-lignende miljøer som Cygwin på Windows-systemene sine. For eksempel installerer Cygwin standardsettet Unix-lignende verktøy som ls, som ignorerer Windows skjult flagg og bare hedrer prikkfil navn. Det er også lettere å synkronisere konfigurasjoner mellom den enkeltes Windows- og Linux / BSD / OSX-datamaskiner hvis den deles på samme sted.

Disse filene er vanligvis funnet i brukerens hjemmekatalog (dvs. /home/name/.ssh på Linux eller C: Usersname.ssh på Windows 7 og nyere). Det er ganske sjelden at de blir satt inn i dokumenter eller Mine dokumenter underkataloger (de inneholder tross alt ikke dokumenter).

Som Rob Pike skriver på Google+, var dette en tilfeldig funksjon:

For lenge siden, da utformingen av Unix-filsystemet ble utarbeidet, var oppføringene . og .. dukket opp for å gjøre navigasjonen enklere. Jeg er ikke sikker, men jeg tror .. gikk inn under omskriving av versjon 2 da filsystemet ble hierarkisk (det hadde en veldig annen struktur tidlig). Når man skrev ls, men disse filene dukket opp, så enten Ken eller Dennis la til en enkel test til programmet. Den var i assembler da, men den aktuelle koden tilsvarte noe som dette:

  • hvis (navn [0] == ‘.’) fortsetter;

Denne uttalelsen var litt kortere enn hva den burde ha vært, som er:

  • hvis (strcmp (navn, “.”) == 0 || strcmp (navn, “..”) == 0) fortsetter;

Men hei, det var lett og to ting resulterte.

Først ble en dårlig presedens satt. Mange andre late programmerere introduserte feil ved å gjøre den samme forenklingen. Faktiske filer som begynner med perioder blir ofte hoppet over når de skal telles.

For det andre, og mye verre, ideen om en skjult eller prikkfil ble laget. Som en konsekvens begynte mer late programmerere å slippe filer ned i alles hjemmekatalog. Jeg har ikke mye programvare installert på datamaskinen jeg bruker for å skrive dette, men hjemmekatalogen har omtrent hundre prikkfiler og jeg vet ikke en gang hva de fleste av dem er, eller om de fremdeles trengs. Hver evaluering av filnavn som går gjennom hjemmekatalogen mines av dette akkumulerte slammet.


Har du noe å legge til forklaringen? Lyd av i kommentarene. Vil du lese flere svar fra andre teknologikyndige Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.