Hvorfor bruger Windows omvendt skråstreg (\) og Unix skråstreg (/) i deres stier?

Sidste ændring: 21/04/2025
Forfatter: Isaac
  • Windows overtog omvendt skråstreg ved arv fra MS-DOS på grund af brugen af ​​skråstregen som en modifikator i kommandoer.
  • Unix Den brugte allerede den normale skråstreg til hierarkiske stier fra sin oprindelse, hvilket gjorde den til en standard blandt Unix-lignende systemer.
  • Begge systemer har udviklet sig til at acceptere begge notationer i visse sammenhænge, ​​samtidig med at de har bevaret deres oprindelige stilarter for kompatibilitet.
  • Historiske og tekniske forskelle i filhåndtering forklarer, hvorfor der i dag sameksisterer to måder at repræsentere ruter på.

Unix vs Windows

En af de mest åbenlyse forskelle mellem Windows- og Unix-systemer (og deres derivater som Linux og macOS) ligger i, hvordan de repræsenterer filstier i deres filsystemer. Mens Windows bruger omvendt skråstreg (\) , bruger Unix og dets derivater skråstreg (/) . Ved første øjekast kan dette virke som et mindre problem, men bag denne beslutning ligger en historie med kompatibilitet, teknisk arv og designforskelle, der er værd at udforske.

Har du nogensinde spekuleret på, hvorfor du, når du skriver en sti i Windows, skal skrive noget i retning af C:\\Brugere\\Dokumenter\\fil.txt, mens det i et Linux-system ville være /home/bruger/dokumenter/fil.txt? Svaret tager os ikke kun tilbage til de tidlige dage med personlige computere, men også til de beslutninger, der blev truffet af to store aktører inden for datalogi: Microsoft og IBM på den ene side og AT&T med sine Bell Labs på den anden.

Konfliktens rod: DOS versus UNIX

Det hele begyndte i starten af ​​80'erne, da Microsoft udviklede MS-DOS-operativsystemet til IBM. På det tidspunkt understøttede DOS 1.0 ikke hierarkiske mapper ; alt var placeret i roden af ​​disken. Derfor var der ikke et opfattet behov for en kompleks sti-notation. Men med udgivelsen af ​​DOS 2.0 opstod behovet for at inkorporere en mere avanceret mappestruktur, i overensstemmelse med mulighederne i IBMs nye PC/XT og dens 10 MB harddisk.

Mange Microsoft-udviklere brugte på det tidspunkt Xenix , en version af UNIX, som Microsoft selv havde licenseret. Derfor var de meget vant til at arbejde med skråstregen (/) som mappeseparator, ligesom det havde været gjort i UNIX i meget længere tid. Den oprindelige hensigt var at replikere den samme logik i MS-DOS 2.0.

Men der var en stor ulempe: IBM brugte allerede skråstregen (/) som en parametermodifikator i kommandoer. For eksempel for at se indholdet af en mappe i detaljer, selv i dag i CMD er brugt dir /w. Denne brug af stangen som en "switch" blev også overtaget af andre systemer på den tid, såsom dem fra Digital Equipment Corporation (DEC), og var allerede etableret blandt de grundlæggende DOS-kommandoer.

Det tvungne valg af skråstreg

Da Microsoft-udviklerne opdagede, at skråstegnet allerede var "optaget" til at ændre kommandoer, måtte de finde et alternativ. De overvejede at bruge punktummet (.) , der bruges i systemer som DEC, til at adskille mapper. DOS brugte dog allerede punktummet til at adskille filnavne fra deres filtypenavne (f.eks. document.txt), så det var heller ikke muligt.

  Fejlfinding af Armoury Crate, MSI Live Update og Gigabyte App Center

Det var dengang, at de valgte at bruge omvendt skråstreg (\) . Selvom det var et sjældent brugt tegn, tjente det til at skelne mellem stier og opretholde kompatibilitet med den eksisterende kommandosyntaks. Da mappeunderstøttelse blev introduceret i DOS 2.0, blev sti-notationen derfor defineret som C:\\Mappe\\Undermappe\\Fil.ext.

Denne tilsyneladende mindre beslutning ville trække ud i årtier og blive arvet i alle fremtidige versioner af Windows-operativsystemet , fra Windows 3.1 til den nuværende Windows 11 eller Server.

Tilfældet med UNIX: den normale skråstreg som naturlig arv

I modsætning hertil blev UNIX-systemer, der stammer fra slutningen af ​​60'erne og begyndelsen af ​​70'erne, designet med en hierarkisk stistruktur fra starten . Brugen af ​​skråstreg (/) til at adskille mapper blev naturligt integreret på grund af dens enkelhed og konsistens. Dette resulterede i stier som /home/user/documents eller /var/log/syslog.

I UNIX, Kommandomodifikatorer brugte ikke skråstreg, men bindestregen (-). For eksempel, for at liste filer med detaljer, blev kommandoen (og bliver stadig) brugt ls -l. Denne beslutning frigjorde skråstreget til eksklusiv brug i filstier, hvilket har vist sig at være mere intuitivt, især når man arbejder på kommandolinjen.

Denne notation blev populær i løbet af 80'erne, da UNIX og dets derivater (såsom BSD, Solaris, HP-UX, AIX og senere Linux) blev udbredt på universiteter, forskningscentre og virksomhedsmiljøer.

Krydskompatibilitet: Windows accepterer i al hemmelighed skråstreget

Interessant nok, selvom Windows officielt bruger omvendt skråstreg som mappeseparator, kan det internt også håndtere det fremadrettede skråstreg . Det vil sige, hvis du skriver følgende i Stifinder eller i en kommando:

C:/Users/Nombre/Documentos

vil fungere nøjagtigt det samme som:

C:\\Users\\Nombre\\Documentos

Dette er muligt, fordi operativsystemet automatisk oversætter skråstreger til omvendte skråstreger, når stier behandles. Denne funktionalitet blev introduceret for at lette softwareportabilitet mellem UNIX og Windows og for at forenkle udførelsen af ​​scripts baseret på UNIX-notation.

Faktisk lod nogle Microsoft-udviklere en endnu mere interessant dør stå åben: ændre kommandomodifikatortegnet. I ældre versioner af DOS kunne du bruge kommandoen SWITCHAR= at ændre standardmodifikatoren fra skråstreg (/) til bindestreg (-), hvilket gjorde det muligt at bruge skråstreget frit i stier også.

Udviklingen af ​​stier i Windows: Absolutte, Relative, UNC-stier og mere

På nutidens Windows-systemer er stihåndtering meget mere omfattende og fleksibel end i de tidlige dage af MS-DOS. I dag er der flere ruteformater, der er værd at kende:

Traditionelle absolutte ruter (DOS)

De følger den klassiske stil, såsom:

  • C:\\Usuarios\\Documentos\\archivo.pdf
  • D:\\Proyectos\\mi_archivo.docx

Denne stil betragtes som en "fuld" sti, da den inkluderer drevbogstavet og stien fra roden.

Relative veje

Dette er stier, der afhænger af den aktuelle mappe . Nogle eksempler:

  • imagenes\\foto.jpg (sti i forhold til den aktuelle mappe)
  • ..\\reportes\\enero.docx (gå et niveau op og find filen)

Det er også muligt at bruge stier i forhold til roden af ​​et drev med:

  • \\Program Files\\App

UNC-ruter (Universal Naming Convention).

De bruges til at få adgang til delte netværksressourcer ved hjælp af formatet:

  • \\\\Servidor\\Compartido\\Carpeta\\Archivo.txt

Denne type rute er grundlaget for fjernadgang i virksomheds- og servermiljøer.

  Jobliste viser 0% disk- eller netværksforbrug: årsager, diagnose og løsninger

Udvidede ruter: Enheder og GUID'er

Windows understøtter også udvidede stier, især nyttige for udviklere og administratorer, såsom:

  • \\\\?\\C:\\Ruta\\Archivo.txt
  • \\\\.\\C:\\Ruta\\Archivo.txt
  • \\\\?\\UNC\\Servidor\\Compartido\\Archivo.txt

Disse stier giver dig mulighed for at undgå systemnormalisering, arbejde med stier på mere end 260 tegn eller identificere partitioner ved hjælp af GUID'er.

Normalisering og styring af ruter i Windows

Når et program i Windows arbejder med stier, udfører operativsystemet en række interne processer kendt som normalisering :

  • Anvend den aktuelle mappe, hvis stien ikke er fuldt ud kvalificeret.
  • Konverterer normale skråstreger (/) til omvendte skråstreg (\).
  • Bearbejder relative komponenter som f.eks . y ...
  • Fjern unødvendige mellemrum og punktum i slutningen af ​​hvert segment.

Denne proces sikrer, at selv en forkert udformet sti kan løses på en standardiseret måde, hvilket er især nyttigt til scripts, grafiske grænseflader og API'er. Forståelse af, hvordan man administrerer ruter i Windows, kan hjælpe dig med at foretage fejlfinding af ruterelaterede fejl.

Og hvad med moderne systemer som PowerShell, .NET eller Linux?

I dag er det i både PowerShell- og .NET-udviklingsmiljøer muligt at skrive stier ved hjælp af enten et skråstreg eller et omvendt skråstreg i flæng . Selv PowerShell til Linux og macOS tillader fortolkning af begge notationer, med nogle forskelle:

  • I Linux er den normale skråstreg den rigtige.
  • Windows accepterer begge dele, men internt viser altid den omvendte.

Derudover giver .NET dig mulighed for at evaluere om en sti anses for absolut med funktioner som f.eks Path.IsPathFullyQualified(), som hjælper med at udvikle applikationer på tværs af platforme uden at bekymre dig om systemets særegenheder. For at forstå mere om forskellene i rutestyring på tværs af forskellige systemer, kan du tjekke vores guide på Sådan omdøbes hyperlinks i Word.

dll fejl
Relateret artikel:
Sådan rettes DLL-fejl 126 og 127 i Windows trin for trin

Unix, Linux og deres arv i routingstrukturen

I Unix-systemer og deres efterkommere som Linux, macOS, BSD og andre er brugen af ​​skråstregen som separator absolut . Med tiden har disse systemer konsolideret en meget klar tilgang:

  • Alt er en fil: fra enheder til indstillinger.
  • Rutesystemet er opbygget i form af et træ med en fælles rod: /.
  • Rutenavne er store og små bogstaver.

Desuden afspejles UNIX-systemets modularitet også i, hvordan det administrerer stier, takket være værktøjer som pipes, omdirigeringer og scripts, der gør det nemt at kæde kommandoer sammen. For at lære mere om, hvordan filer administreres i disse systemer, kan du være interesseret i vores artikel om, hvad en inetpub-mappe er i Windows.

slet kun én side af word-5
Relateret artikel:
Sådan omdøber du et hyperlink i Word og mestrer linkene i dine dokumenter

Hvorfor forenede de ikke standarden?

Mange undrer sig over, hvorfor Microsoft ikke tilsluttede sig UNIX-standarden på det tidspunkt. Årsagerne er flere, men nogle er særligt relevante:

  • Bagudkompatibilitet: Ændring af separatorkarakteren ville have ødelagt tusindvis af programmer.
  • IBM-beslutninger: determinanter i brugen af ​​skråstreg til at ændre kommandoer, hvilket gjorde det meget vanskeligt at anvende UNIX-stilen i DOS.
  • Hastighed med at implementere DOS 2.0: Mange tekniske beslutninger blev improviseret på grund af mangel på tid.
  Sådan administrerer du brugere fra PowerShell: En komplet trin-for-trin guide

Derudover udvidede Windows-økosystemet sig i løbet af 90'erne og 2000'erne uden behov for at implementere UNIX-standarden, hvilket forlængede sameksistensen af ​​begge stilarter. For bedre at forstå, hvordan kompatibilitet fungerer på tværs af forskellige platforme, kan du læse vores artikel om ændring af tastatursproget i Windows.

Arven fortsætter: GNU/Linux, macOS og Windows i dag

Selvom Linux ikke er en direkte forgrening af UNIX, opretholder det den samme filosofi og sti-stil . Faktisk fortsatte udviklingen af ​​GNU og senere Linux-kernen af ​​Linus Torvalds med at bruge omvendt skråstreg som den eneste gyldige mappeseparator . For en mere omfattende oversigt over understøttelse på tværs af forskellige systemer, se vores artikel om netværksprotokoller og stier i forskellige systemer.

macOS er officielt anerkendt som et UNIX-system med fuld kompatibilitetscertificering i henhold til Single UNIX Specification (SUS). Dette gør det til det eneste bredt distribuerede desktopsystem, der opfylder alle UNIX-krav. Interoperabilitet mellem disse systemer er nøglen for udviklere, der arbejder i tværplatformsmiljøer, og det at vide, hvordan man administrerer stier korrekt, kan i høj grad lette det daglige arbejde.

I mellemtiden har Windows forbedret sin kompatibilitet med disse typer miljøer, især siden ankomsten af ​​PowerShell Core, .NET Core og Windows Subsystem for Linux (WSL), som tillader at køre binære filer og scripts skrevet i UNIX-notation fra Windows-økosystemet. For mere dybdegående løsninger på sti-relaterede fejl i Windows anbefaler vi at besøge vores guide til fejlfinding af sti-relaterede fejl i Windows.

I dag, selvom forskellen mellem \ y / Det eksisterer stadig, systemer har lært at leve med begge notationer af praktiske årsager.. Fra webbrowsere til kodeeditorer som Visual Studio Code giver mange værktøjer dig nu mulighed for at arbejde med ressourcer i begge formater problemfrit. Rutestyringskompatibilitet er en realitet, der gør det nemmere for brugere og udviklere at arbejde på tværs af forskellige platforme.

Som vi har set, er grunden til, at Windows og UNIX – og deres efterkommersystemer – bruger forskellige skråstreger til at repræsentere stier, ikke et spørgsmål om æstetiske præferencer, men snarere et spørgsmål om tekniske beslutninger, bagudkompatibilitet og konventioner, der er nedarvet fra andre miljøer. På trods af den vedvarende forskel mellem \ y /Moderne interoperabilitet har gjort denne adskillelse mere acceptabel end nogensinde. Og selvom vi nok aldrig vil se en fuldstændig ensretning af rutestilen, er sandheden, at med de nuværende fremskridt i programmering på tværs af platforme, repræsenterer denne forskel ikke længere en reel hindring for moderne brugere og udviklere.

Sådan flyttes Steam-spil til en anden pc-7
Relateret artikel:
Sådan finder du ud af, hvor mange penge du har brugt på Steam: en komplet guide til nysgerrige brugere