Tại sao Windows sử dụng dấu gạch chéo ngược cho đường dẫn và dấu gạch chéo chuyển tiếp Unix?


Câu trả lời:


98

Unix được giới thiệu /là trình phân tách thư mục vào khoảng năm 1970. Tôi không biết tại sao chính xác nhân vật này được chọn; hệ thống tổ tiên Multics được sử dụng >, nhưng các nhà thiết kế của Unix đã sử dụng >cùng với <để chuyển hướng trong trình bao (xem Tại sao thư mục gốc được biểu thị bằng một /dấu hiệu? ).

MS-DOS 2.0 được giới thiệu \là trình phân tách thư mục vào đầu những năm 1980. Lý do /không được sử dụng là MS-DOS 1.0 (hoàn toàn không hỗ trợ các thư mục) đã sử dụng /để giới thiệu các tùy chọn dòng lệnh. Nó sử dụng /từ CP / M , lấy từ VMS . Bạn có thể đọc một lời giải thích kỹ lưỡng hơn về lý do tại sao lựa chọn đó được đưa ra trên blog của Larry Osterman (MS-DOS thậm chí có một thời gian ngắn để thay đổi ký tự tùy chọn thành -và dấu tách thư mục thành /, nhưng nó không dính vào).

/nó được công nhận bởi hầu hết các API cấp lập trình viên (trong tất cả các phiên bản của DOS và Windows). Vì vậy, bạn có thể thường xuyên, nhưng không phải lúc nào cũng sử dụng /như một trình phân tách thư mục trong Windows. Một ngoại lệ đáng chú ý là bạn không thể sử dụng /làm dấu tách sau \\?tiền tố (ngay cả trong Windows 7) là cách duy nhất để chỉ định đường dẫn sử dụng Unicode hoặc chứa hơn 260 ký tự.

Một số thành phần giao diện người dùng hỗ trợ /như một dấu tách thư mục trong Windows, nhưng không phải tất cả. Một số chương trình chỉ chuyển tên tệp thông qua API cơ bản, vì vậy chúng hỗ trợ /\không quan tâm. Trong trình thông dịch lệnh (trong command.comhoặc cmd), bạn có thể sử dụng /trong nhiều trường hợp, nhưng không phải lúc nào cũng vậy; điều này phụ thuộc một phần vào phiên bản Windows (ví dụ, cd /windowshoạt động trong XP và 7 nhưng không hoạt động trong Windows 9x). Hộp nhập đường dẫn Explorer chấp nhận /(ít nhất là từ XP trở lên; có thể vì nó cũng chấp nhận URL). Mặt khác, hộp thoại mở tệp tiêu chuẩn từ chối dấu gạch chéo .


2
/được nhận dạng là một dấu tách thư mục bởi dòng lệnh MS-DOS hoặc Windows.
Tamara Wijsman

1
"C: \ Windows \ System32> cd / windows / system" hoạt động.
Andrew J. Brehm

@TomWij: Bạn có tham chiếu về nơi chính xác /được chấp nhận trên dòng lệnh không? Ví dụ, dir /plàm gì? và dir c:/p? và c:/windows/notepad.exe? và start /windows/notepad.exe? v.v. (Tôi không có máy Windows ở đây để kiểm tra.)
Gilles

2
/có lẽ được sử dụng làm dấu tách thư mục trong UNIX vì đây là một phím dễ dàng (không bị dịch chuyển) để tấn công vào Teletype. Các nhân vật đặc biệt không lay chuyển được : - ; , . /.
Daniel R Hicks

2
Thật thú vị, gần đây tôi đã tìm hiểu các nguồn và hướng dẫn sử dụng DOS 1 và 2 và phát hiện ra rằng Microsoft đã sử dụng /(và -cho các thiết bị chuyển mạch) như Xenix, và lấy cảm hứng từ Xenix, nhưng IBM đã phát hành trước khi Microsoft chuyển đến OEM và IBM đã sử dụng ` (and / `cho thiết bị chuyển mạch) và thay đổi lời nhắc từ A:để A>họ thay đổi tài liệu mặc định và gửi lỗi (vẫn giả sử // -) cộng với một lưu ý rằng nó đã được thay đổi và tại sao.
mirabilos

9

Các cơ bản Windows API có thể chấp nhận một trong hai dấu chéo ngược hoặc giảm vào thư mục và tập tin thành phần riêng biệt của một con đường, nhưng ước Microsoft là sử dụng một dấu gạch chéo, và API mà trở về con đường đưa xuyệc ngược trong.

MS-DOS 2.0 đã sao chép hệ thống tệp phân cấp từ Unix và do đó đã sử dụng dấu gạch chéo chuyển tiếp, nhưng (có thể vì sự khăng khăng của IBM ) đã thêm dấu gạch chéo ngược để cho phép các đường dẫn được nhập vào trình vỏ lệnh trong khi vẫn duy trì khả năng tương thích với MS-DOS 1.0CP / M trong đó dấu gạch chéo là chỉ báo tùy chọn dòng lệnh.

So sánh

dir/w

trong đó hiển thị thư mục hiện tại ở định dạng rộng so với

dir\w

mà chạy các wtập tin trong giám đốc dir.

Người giới thiệu:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.