Nó làm tôi khó chịu khi sử dụng Unix ở trường đại học và hiện đang làm việc ở phía Windows. Lịch sử đằng sau quyết định này là gì? Bất cứ ai biết tại sao nó làm việc theo cách này?
Nó làm tôi khó chịu khi sử dụng Unix ở trường đại học và hiện đang làm việc ở phía Windows. Lịch sử đằng sau quyết định này là gì? Bất cứ ai biết tại sao nó làm việc theo cách này?
Câu trả lời:
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ợ /
và \
không quan tâm. Trong trình thông dịch lệnh (trong command.com
hoặ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 /windows
hoạ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 .
/
đượ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.
/
được chấp nhận trên dòng lệnh không? Ví dụ, dir /p
là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.)
/
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 : - ; , . /
.
/
(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.
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.0 và CP / 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 w
tập tin trong giám đốc dir
.
Người giới thiệu: