2013-05-30 33 views
10

Chúng tôi biết thư mục gốc là/và theo posix, có một thư mục // khác với /. Khi bạn ls/và ls //, đầu ra là giống nhau, như stat, tuy nhiên nếu bạn cd/và cd //, chúng khác nhau, mặc dù nội dung thư mục giống nhau. Điều đó thực sự làm tôi bối rối. Có ai có câu trả lời không?Đường dẫn // là gì, khác với/

+0

Bạn có thể cung cấp một tài liệu tham khảo mà nói họ là khác nhau? Ngoài ra, những gì bạn có nghĩa là nếu bạn "cd /" so với "cd //" họ là khác nhau - làm thế nào để bạn biết? –

+0

@MarkkuK. Xin lỗi tôi đã không nói rõ ràng, nó có nghĩa là pwd đã không thay đổi. Vì vậy, như devnull nói. Bạn có thể thử nó. – dspjm

+0

Ngoài ra, nếu bạn nhập "cd // usr" (ví dụ) thay vì "cd/usr", bạn kết thúc bằng "/ usr", bash nói bạn đang bỏ "// usr" và pwd là "// usr "quá ... – Tom

Trả lời

18

Từ Bash FAQ:

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'. 
+0

Trên giả lập git bash của tôi (về mặt kỹ thuật một máy cửa sổ) một nỗ lực để' ls -l // 'kết quả trong máy cố gắng để đọc và liệt kê toàn bộ mạng có sẵn ... wow. –

Các vấn đề liên quan