MS-DOS and derived systems use backslash \
for path separator and slash /
for command parameters. Unix and a number of other systems used slash /
for paths and backslash \
for escaping special characters. And to this day this discrepancy causes countless woes to people working on cross-compilers, cross-platform tools, things that have to take network paths or URLs as well as file paths, and other stuff that you'd never imagine to suffer from this.
Why? What are the origins of this difference? Who's to blame and what's their excuse?
:
as its path separator until MacOS X introduced POSIX APIs. This question goes into the history of that decision and answers point to:
and.
as path separators predating UNIX's use of/
./
seven years before VMS's first release (going by Wikipedia dates), but it wasn't a settled thing. Other designs were using:
and.
in the mid-60s, half a decade before UNIX decided on/
, and UNIX broke from Multics's>
because they wanted to use it for shell piping.