大学でUnixを使っていて、現在はWindows側で作業しているのが面倒です。この決定の背後にある歴史は何ですか?なぜこのようになったのか誰でも知っていますか?
大学でUnixを使っていて、現在はWindows側で作業しているのが面倒です。この決定の背後にある歴史は何ですか?なぜこのようになったのか誰でも知っていますか?
回答:
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 /windows
XPと7 では動作しますが、Windows 9xでは動作しませんでした)。エクスプローラーのパス入力ボックスは受け入れます/
(少なくともXP以降。おそらくURLも受け入れるため)。一方、標準のファイルを開くダイアログはスラッシュを拒否します。
/
は、MS-DOSまたはWindowsコマンドラインによってディレクトリ区切り文字として認識されます。
/
コマンドラインで正確に受け入れられる場所についての参照はありますか?たとえば、何をしdir /p
ますか?そしてdir c:/p
?そしてc:/windows/notepad.exe
?そしてstart /windows/notepad.exe
?など(テスト用のWindowsマシンはここにありません。)
/
UNIXでディレクトリセパレータとして使用されたのは、Teletypeを攻撃するための簡単な(シフトされていない)キーだったためです。シフトされていない特殊文字はでした: - ; , . /
。
/
(および-
スイッチ用)Xenixに触発されたが、MicrosoftはOEMに出荷する前にIBMをリリースし、IBM ` (and
はスイッチに/を使用したことを発見しましたプロンプトをからA:
にA>
変更して、デフォルトを変更し、バグのあるドキュメント(まだ/
/を想定-
)に加えて、変更された旨とその理由を記載しました。
基盤となる、WindowsのAPIは、いずれかのバックスラッシュを受け入れるか、パスの別々のディレクトリとファイルコンポーネントにスラッシュが、マイクロソフトの大会は、バックスラッシュを使用することで、パスを返すAPIはにバックスラッシュを置くことができます。
MS-DOS 2.0は階層ファイルシステムをUnixからコピーし、スラッシュを使用しましたが、(おそらくIBMの主張で)バックスラッシュを追加して、MS-DOS 1.0およびCPとの互換性を維持しながら、コマンドシェルにパスを入力できるようにしました/ Mスラッシュはコマンドラインオプションインジケーターでした。
比較する
dir/w
現在のディレクトリをワイド形式で表示します
dir\w
w
directorでファイルを実行しますdir
。
参照: