Tại sao dấu hai chấm ( :
) được chọn làm dấu phân cách đường dẫn?
Lưu ý rằng tôi có nghĩa là "phân cách đường dẫn" chứ không phải "phân cách thư mục". Dấu phân cách đường dẫn là ký hiệu được đặt giữa các mục trong PATH
biến môi trường.
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
^ this symbol
Mọi thứ trong máy tính và phần mềm đã từng là một quyết định có chủ ý của ai đó ở đâu đó. Ví dụ tại sao dấu ngã đại diện cho thư mục nhà (và tại sao hjkl cho các phím điều hướng trong vi) . Tôi muốn biết nền tảng cho quyết định này.
Một số sự thật ngẫu nhiên:
Có dấu hai chấm làm dấu phân cách đường dẫn có nghĩa là thư mục có dấu hai chấm trong tên có thể được thêm vào đường dẫn.
từ POSIX:
Vì
<colon>
là dấu phân cách trong ngữ cảnh này, các tên thư mục có thể được sử dụng trong PATH không được bao gồm<colon>
ký tự.
http://pub.opengroup.org/onlinepub/9699919799/basingefs/V1_chap08.html
Dường như không thể thoát khỏi ruột kết. @ Random832 từ Stack Overflow đã kiểm tra mã nguồn xử lý PATH và không tìm thấy cơ chế thoát.
PATH
trước khi giới thiệu Phiên bản Unix 7 (năm 1979) , nhưng có một :
đường dẫn tìm kiếm được phân định giới hạn vào đầu năm 1977. PWB / Unix (Lập trình viên bàn làm việc) đã sử dụng trình bao Mashey , được viết bởi John R. Mashey , rơi theo trình tự thời gian giữa vỏ Thompson và vỏ Bourne. Tiết (Cont'd)
p
là đường dẫn tìm kiếm (được gọi là chuỗi tìm kiếm thư mục Shell cho lệnh thực thi lệnh), với các thư mục được phân tách bằng dấu hai chấm. Mạnh mẽ và hoàn toàn khác nhau .profile
, tất cả đều như nhau, trong khi vỏ Mashey xử lý tệp, nó cũng cho phép bạn chỉ định $p
giá trị ban đầu trong tệp được gọi .path
.
/etc/passwd
(cũng chứa các đường dẫn trong cột nhà và cột vỏ).