Why File Paths Use Slashes: A History from Multics' > to Unix / and Windows \
This article traces the evolution of file path separators from Multics' angle brackets through Unix's forward slash to Windows' backslash, explaining how keyboard layouts, existing character assignments, and cross-OS compatibility shaped the conventions we use today.
I. Multics: The Angle Brackets > and <
Multics (1960s, MIT/Bell Labs/GE) is widely regarded as the first OS with a hierarchical file system. It used > for a subdirectory relative to the working directory and < for the parent directory, mimicking arrow shapes (→/←). For example, with working directory >udd>Demo>JQUser, an absolute path could be >udd>Demo>JQUser>subdir>myfile and a relative path subdir>myfile or <<NewDemo>JQUser. Early Multics documentation also mentions a colon : as a separator. Notably, the Teletype Model 37 terminal used with Multics had dedicated keys for < and > that did not require Shift, satisfying the principle that a path separator should be typable without Shift.
II. Unix: The Forward Slash /
In 1969 Ken Thompson and Dennis Ritchie wrote Unix on a DEC PDP-7, adapting many Multics ideas. They replaced < / > with / because those characters were already used for I/O redirection in Unix. The choice of / was also influenced by the Lear-Siegler ADM-3A terminal keyboard common in the 1970s: / sat right next to < / > and could be typed without Shift. Unix's ~ for the home directory similarly maps to the same key as "Home" on that keyboard. The article emphasizes the design principle: a path separator must be directly typable without Shift.
III. Other Contemporary Systems: Diverse Schemes
Before DOS/Windows, several OSes used very different notations:
DEC TOPS-10 (1967): device:filename.ext[dir,dir]<protection> — directories in brackets, comma-separated, placed after the filename.
DEC TOPS-20 : device:<dir.subdir>filename.ext,version — angle brackets around dot-separated directories.
OpenVMS : host::device:[dir.subdir]filename.ext;version — square brackets, dot-separated directories.
Apple Lisa OS (1983): hyphen - as separator.
ProDOS (1983, Apple II): forward slash /.
Classic Mac OS : colon :.
GS/OS (1988, Apple IIGS): supported both / and :.
RISC OS (1987, ARM): [fs:][:drive.]$.dir.file/ext with dot-separated directories and a slash before the extension.
Mac OS X (2000) adopted Unix-style / but retained compatibility by translating : to / in some contexts.
IV. DOS & Windows: The Backslash \
MS-DOS 2.0 introduced hierarchical directories and needed a separator. The forward slash / was already the switch character (option flag) in DOS 1.x (e.g., dir /s), a convention inherited from DEC operating systems (VMS, TOPS-10, TOPS-20) where / served the same purpose. Microsoft engineer Larry Osterman notes many DOS utilities were written by IBM and followed DEC habits; early Microsoft developers were also DEC-20 veterans. The MS-DOS Encyclopedia (1988) confirms MS-DOS 1.x adopted DEC's tradition of using / as the switch character.
Why not use a DEC-style dot . for directories? That would conflict with the dot separating filename and extension. Microsoft originally wanted to use Unix's / for paths to achieve compatibility with its own Unix product, Xenix (released 1980). Microsoft developers used Xenix machines daily and MS-DOS 2.x was designed to share hierarchical file structure and I/O redirection with Xenix. However, IBM refused to allow / as a path separator because it would break compatibility with existing DOS 1.x batch files that used / as a switch. Other candidates like . were rejected due to the extension conflict. Considering keyboard layout (must be typable without Shift) and a desire for visual similarity to /, Microsoft chose \.
Evidence suggests the decision was rushed: release notes mention last-minute changes forced by IBM, including swapping / and \ roles, with no time to update manuals beyond adding a note. To ease Unix compatibility, DOS/Windows later accepted both / and \ as path separators and even provided a SWITCHAR option in config.sys to change the switch character to - (Unix style). Today Windows still supports both, though some APIs require \. The article notes \ also serves as an escape character in programming, creating occasional complications, but argues any ASCII symbol would have some conflict.
V. The Backslash Character Itself
The backslash is a relatively recent addition to character sets. In June 1960 IBM's "Extended Character Set Standard" included it at position 0x19. In September 1961 Bob Bemer proposed adding it to the ASCII draft to support ALGOL logical operators /\ (AND) and \/ (OR). The proposal was accepted; Bemer is called the "father of the backslash." After entering ASCII, it was named "backslash" or "reverse slash" to distinguish it from the older "slash" ( /). In Japanese and Korean Windows, code point 0x5C (backslash in ASCII) displays as the yen (¥) or won (₩) sign respectively. This stems from ISO-646 designating 0x5C as a national-use code point; Shift_JIS (based on JIS X 0201, 1969) assigned it to the yen sign because single-byte code space was scarce. Microsoft retained this mapping for backward compatibility even after Unicode adoption.
VI. Summary
The choice of a path separator involves balancing character properties, keyboard accessibility, and avoidance of conflicts with existing syntax (redirection, switches, extensions). The historical survey shows how OS designs influenced each other: Multics begat Unix; DEC conventions shaped DOS switch syntax; Microsoft's Xenix ambition pulled DOS toward Unix-style hierarchies; IBM's compatibility demand forced the backslash compromise. The resulting simplicity — single-character separators typable without Shift — lowered the learning curve and aided mass adoption of computing.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
dbaplus Community
Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
