Câu hỏi Tại sao tôi có thể truy cập dir // trong Linux?


Tôi tìm thấy thư mục này trong máy chủ ubuntu của tôi

momo@myubuntuserver:/$ cd /
momo@myubuntuserver:/$ pwd
/
momo@myubuntuserver:/$ cd //
momo@myubuntuserver://$ pwd
//
momo@myubuntuserver://$ cd ///
momo@myubuntuserver:/$ pwd
/

tại sao dir này tồn tại? Làm thế nào nó hoạt động ?


3
2018-05-07 10:11


gốc




Các câu trả lời:


Từ Câu hỏi thường gặp về Bash:

E10) Why does `cd //' leave $PWD as `//'?

POSIX.2, in its description of `cd', says that *three* or more leading
slashes may be replaced with a single slash when canonicalizing the
current working directory.

This is, I presume, for historical compatibility.  Certain versions of
Unix, and early network file systems, used paths of the form
//hostname/path to access `path' on server `hostname'.

9
2018-05-07 10:18





// Chỉ là / trên Linux. Như là //////bin//////ls là một tên thay thế cho /bin/ls.

Kiểu /bin/pwd để tìm ra thực thư mục làm việc hiện tại.


5
2018-05-07 10:12



Câu hỏi thú vị là tại sao không nhắc lệnh shell và pwd bình thường hóa // như bình thường hóa ///?
@DanielFischer: bởi vì theo tiêu chuẩn POSIX, // ở đầu đường dẫn có thể có một ý nghĩa đặc biệt đối với hệ điều hành, và Bash dường như phục vụ cho điều này. Tuy nhiên, Linux không có ý nghĩa như vậy. (Tôi nghĩ Cygwin và các gói "Unix-cho-Windows" khác sử dụng điều này để biểu thị các đường dẫn mạng UNC, nhưng quy ước trở lại với Apollo Domain / OS.) - Fred Foo