it-swarm.com.de

Warum verwendet Windows Backslashes für Pfade und Unix Forward Slashes?

Es ärgert mich, dass ich Unix im College verwendet habe und jetzt auf der Windows-Seite arbeite. Welche Geschichte steckt hinter dieser Entscheidung? Weiß jemand, warum es so geklappt hat?

83
jrsconfitto

Unix führte / irgendwann um 1970 als Verzeichnis-Trennzeichen ein. Ich weiß nicht, warum genau dieses Zeichen gewählt wurde; das Vorfahrensystem Multics verwendete >, aber die Designer von Unix hatten bereits > zusammen mit < für die Umleitung in der Shell verwendet (siehe Warum ist das Stammverzeichnis mit einem /-Zeichen gekennzeichnet? ) .

MS-DOS 2.0 führte in den frühen 1980er Jahren \ als Verzeichnisseparator ein. Der Grund, warum / nicht verwendet wurde, ist, dass MS-DOS 1.0 (das Verzeichnisse überhaupt nicht unterstützte) bereits / verwendete, um Befehlszeilenoptionen einzuführen. Es hat diese Verwendung von / von CP/M übernommen, die es von VMS übernommen hat. Eine ausführlichere Erklärung, warum diese Auswahl getroffen wurde , finden Sie in Larry Ostermans Blog (MS-DOS hatte sogar kurz die Option, das Optionszeichen in - und das Verzeichnis-Trennzeichen in zu ändern /, aber es hat nicht gehalten).

/ wird von den meisten APIs auf Programmiererebene (in allen Versionen von DOS und Windows) erkannt. So kommt man unter Windows oft, aber nicht immer mit der Verwendung von / als Verzeichnisseparator davon. Eine bemerkenswerte Ausnahme ist, dass Sie / nicht als Trennzeichen nach dem \\?-Präfix verwenden können. Dies ist (auch in Windows 7) die einzige Möglichkeit, einen Pfad mit Unicode anzugeben oder mehr zu enthalten als 260 Zeichen.

Einige Elemente der Benutzeroberfläche unterstützen / als Verzeichnisseparator unter Windows, jedoch nicht alle. Einige Programme übergeben Dateinamen einfach an die zugrunde liegende API, sodass sie / und \ unabhängig voneinander unterstützen. Im Befehlsinterpreter (in command.com oder cmd) können Sie / in vielen Fällen verwenden, jedoch nicht immer. Dies hängt teilweise von der Windows-Version ab (z. B. funktioniert cd /windows in XP und 7, nicht jedoch in Windows 9x). Das Eingabefeld für den Explorer-Pfad akzeptiert / (mindestens ab XP; wahrscheinlich, weil es auch URLs akzeptiert). Der Standarddialog zum Öffnen von Dateien weist Schrägstriche zurück.

98
Gilles

Die zugrunde liegende Windows-API kann entweder den umgekehrten Schrägstrich oder den Schrägstrich akzeptieren, um Verzeichnis- und Dateikomponenten eines Pfads zu trennen. Microsoft verwendet jedoch einen umgekehrten Schrägstrich und APIs, die Pfade zurückgeben, die einen umgekehrten Schrägstrich enthalten.

MS-DOS 2.0 kopierte das hierarchische Dateisystem von Unix und verwendete somit den Schrägstrich, fügte jedoch (möglicherweise auf Drängen von IBM ) hinzu Der umgekehrte Schrägstrich, mit dem Pfade in die Befehls-Shell eingegeben werden können, während die Kompatibilität mit MS-DOS 1.0 und CP/M erhalten bleibt, bei denen der Schrägstrich der Befehl war -Zeilenoptionsanzeige.

Vergleichen Sie

dir/w

das zeigt das aktuelle verzeichnis im wide format dagegen an

dir\w

daraufhin wird die Datei w im Director dir ausgeführt.

Verweise:

9
Tamara Wijsman