Mengapa Windows menggunakan garis miring terbalik untuk jalur dan garis miring maju Unix?

Jawaban:

98

Unix diperkenalkan /sebagai pemisah direktori sekitar tahun 1970. Saya tidak tahu mengapa karakter ini dipilih; sistem leluhur Multics digunakan >, tetapi desainer Unix telah digunakan >bersama dengan <untuk pengalihan di shell (lihat Mengapa direktori root dilambangkan dengan /tanda? ).

MS-DOS 2.0 diperkenalkan \sebagai pemisah direktori pada awal 1980-an. Alasannya /tidak digunakan adalah bahwa MS-DOS 1.0 (yang tidak mendukung direktori sama sekali) sudah menggunakan /untuk memperkenalkan opsi baris perintah. Butuh penggunaan ini /dari CP / M , yang mengambilnya dari VMS . Anda dapat membaca penjelasan yang lebih menyeluruh tentang mengapa pilihan itu dibuat di blog Larry Osterman (MS-DOS bahkan sempat memiliki opsi untuk mengubah karakter opsi -dan pemisah direktori /, tetapi tidak tetap).

/itu dikenali oleh sebagian besar API tingkat programmer (di semua versi DOS dan Windows). Jadi Anda bisa sering melakukannya, tetapi tidak selalu berhasil menggunakan /pemisah direktori di Windows. Pengecualian penting adalah bahwa Anda tidak dapat menggunakan /sebagai pemisah setelah \\?awalan yang (bahkan di Windows 7) adalah satu-satunya cara untuk menentukan jalur menggunakan Unicode atau berisi lebih dari 260 karakter.

Beberapa elemen antarmuka pengguna mendukung /sebagai pemisah direktori di bawah Windows, tetapi tidak semua. Beberapa program hanya meneruskan nama file ke API yang mendasarinya, sehingga mereka mendukung /dan \acuh tak acuh. Dalam penerjemah perintah (dalam command.comatau cmd), Anda dapat menggunakan /dalam banyak kasus, tetapi tidak selalu; ini sebagian tergantung pada versi Windows (misalnya, cd /windowsberfungsi di XP dan 7 tetapi tidak di Windows 9x). Kotak entri jalur Explorer menerima /(setidaknya dari XP ke atas; mungkin karena ia juga menerima URL). Di sisi lain, dialog buka file standar menolak garis miring .

Gilles
sumber
2
/diakui sebagai pemisah direktori oleh baris perintah MS-DOS atau Windows.
Tamara Wijsman
1
"C: \ Windows \ System32> cd / windows / system" berfungsi.
Andrew J. Brehm
@ TomWij: Apakah Anda memiliki referensi ke mana tepatnya /diterima pada baris perintah? Misalnya, apa fungsinya dir /p? dan dir c:/p? dan c:/windows/notepad.exe? dan start /windows/notepad.exe? dll. (Saya tidak punya mesin Windows di sini untuk menguji.)
Gilles
2
/mungkin digunakan sebagai pemisah direktori di UNIX karena itu adalah kunci yang mudah (tidak tergeser) untuk menyerang Teletype. Karakter khusus unshifted adalah : - ; , . /.
Daniel R Hicks
2
Cukup menarik, saya baru-baru ini menggali melalui sumber dan manual DOS 1 dan 2 dan menemukan bahwa Microsoft menggunakan /(dan -untuk sakelar) seperti Xenix, dan terinspirasi oleh Xenix, tetapi IBM dirilis sebelum Microsoft dikirimkan ke OEM, dan IBM menggunakan ` (and / `untuk sakelar) dan berubah cepat dari A:ke A>sehingga mereka mengubah default dan dikirim kereta (masih dengan asumsi // -) dokumentasi ditambah catatan bahwa itu berubah dan mengapa.
mirabilos
9

The mendasari API Windows dapat menerima baik backslash atau memangkas direktori dan berkas komponen yang terpisah dari jalan, tapi konvensi Microsoft adalah dengan menggunakan garis miring terbalik, dan API yang kembali jalur menempatkan garis miring terbalik di.

MS-DOS 2.0 menyalin sistem file hierarkis dari Unix dan dengan demikian menggunakan slash maju, tetapi (mungkin atas desakan IBM ) menambahkan backslash untuk memungkinkan jalur yang akan diketikkan ke dalam shell perintah sementara tetap mempertahankan kompatibilitas dengan MS-DOS 1.0 dan CP / M di mana garis miring adalah indikator opsi baris perintah.

Membandingkan

dir/w

yang menunjukkan direktori saat ini dalam format lebar terhadap

dir\w

yang menjalankan wfile di direktur dir.

Referensi:

Tamara Wijsman
sumber