Windowsがパスにバックスラッシュを使用し、Unixのスラッシュを使用するのはなぜですか?


回答:


98

Unixは/、1970年頃にディレクトリセパレータとして導入されました。この文字が選択された理由はわかりません。祖先システムはMulticsの使用>が、Unixののデザイナーは、すでに使用していた>と一緒に<シェルでのリダイレクトのために(参照によって示されるルートディレクトリですなぜ/記号?)。

MS-DOS 2.0 \は、1980年代初期にディレクトリセパレータとして導入されました。/使用されなかった理由は、MS-DOS 1.0(ディレクトリをまったくサポートしていなかった)が既に/コマンドラインオプションの導入に使用していたためです。それは、この用法取った/からCP / Mからそれを取った、VMSをLarry Ostermanのブログでその選択が行われた理由のより詳細な説明を読むことができます(MS-DOSにはオプション文字を-に、ディレクトリセパレータをに変更するオプションが少しありました/が、それは固執しませんでした)。

/ほとんどのプログラマレベルのAPI(DOSおよびWindowsのすべてのバージョン)で認識されます。そのため/、Windowsでディレクトリセパレーターとして使用することで、頻繁に回避できますが、常に回避できるわけではありません。注目すべき例外はプレフィックスの後にセパレーターとして使用できない/\\?ことです(Windows 7でも)。Unicodeを使用するか、260文字を超えるパスを指定する唯一の方法です。

一部のユーザーインターフェイス要素/は、Windowsではディレクトリセパレーターとしてサポートされますが、すべてではありません。一部のプログラムは、ファイル名を基礎となるAPIに渡すだけなので、それらはサポートされ/\無関心です。コマンドインタープリター(command.comまたはcmd)では/、多くの場合に使用できますが、常にではありません。これは、Windowsのバージョンに一部依存しています(たとえば、cd /windowsXPと7 では動作しますが、Windows 9xでは動作しませんでした)。エクスプローラーのパス入力ボックスは受け入れます/(少なくともXP以降。おそらくURLも受け入れるため)。一方、標準のファイルを開くダイアログはスラッシュを拒否します


2
/は、MS-DOSまたはWindowsコマンドラインによってディレクトリ区切り文字として認識されます。
タマラWijsman

1
「C:\ Windows \ System32> cd / windows / system」が機能します。
アンドリューJ.ブレム

@TomWij:/コマンドラインで正確に受け入れられる場所についての参照はありますか?たとえば、何をしdir /pますか?そしてdir c:/p?そしてc:/windows/notepad.exe?そしてstart /windows/notepad.exe?など(テスト用のWindowsマシンはここにありません。)
ジル

2
/UNIXでディレクトリセパレータとして使用されたのは、Teletypeを攻撃するための簡単な(シフトされていない)キーだったためです。シフトされていない特殊文字はでした: - ; , . /
ダニエルRヒックス14年

2
興味深いことに、私は最近DOS 1および2のソースとマニュアルを掘り下げ、Microsoft がXenixのような/(および-スイッチ用)Xenixに触発されたが、MicrosoftはOEMに出荷する前にIBMをリリースし、IBM ` (and はスイッチに/を使用したことを発見しましたプロンプトをからA:A>変更して、デフォルトを変更し、バグのあるドキュメント(まだ//を想定-)に加えて、変更された旨とその理由を記載しました。
ミラビロス

9

基盤となる、WindowsのAPIは、いずれかのバックスラッシュを受け入れるか、パスの別々のディレクトリとファイルコンポーネントにスラッシュが、マイクロソフトの大会は、バックスラッシュを使用することで、パスを返すAPIはにバックスラッシュを置くことができます。

MS-DOS 2.0は階層ファイルシステムをUnixからコピーし、スラッシュを使用しましたが、(おそらくIBMの主張で)バックスラッシュを追加して、MS-DOS 1.0およびCPとの互換性を維持しながら、コマンドシェルにパスを入力できるようにしました/ Mスラッシュはコマンドラインオプションインジケーターでした。

比較する

dir/w

現在のディレクトリをワイド形式で表示します

dir\w

wdirectorでファイルを実行しますdir

参照:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.