Thư mục là gì


12

Trên các máy linux khác nhau, bạn có thể

cd /

cd //

Shell sẽ cho biết thư mục hiện tại là '/' hoặc '//' sau khi sử dụng lệnh tương ứng.

Vì vậy, câu hỏi là: sự khác biệt giữa '/' và '//' là gì và nếu câu trả lời là 'không khác biệt' thì tại sao '//' lại hiển thị khác với '/'

BTW

cd ///
cd ////
cd /////

Tất cả kết quả trong shell cho biết thư mục hiện tại là '/'

Đây là một phiên ví dụ:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Điều này dường như là một bất thường đặc biệt bash. Nếu bạn thử cd //trong csh hoặc zsh và sau đó pwdnó sẽ chỉ hiển thị '/'
Doug Harris

thú vị - làm sáng tỏ nó
sylvanaar

1
Để so sánh: cd //usr/binđưa ra "// usr / bin", nhưng cd /usr//bincho "/ usr / bin" (bằng Bash).
Tạm dừng cho đến khi có thông báo mới.

Câu trả lời:


14

Hãy tự hỏi người đàn ông (Chester Ramey):

E10) Tại sao 'cd //' lại để $ PWD là '//'?

POSIX.2, trong mô tả của 'cd', nói rằng ba hoặc nhiều dấu gạch chéo hàng đầu có thể được thay thế bằng một dấu gạch chéo khi chuẩn hóa thư mục làm việc hiện tại.

Đây là, tôi cho rằng, để tương thích lịch sử. Một số phiên bản nhất định của Unix và các hệ thống tệp mạng đầu tiên, đã sử dụng các đường dẫn có dạng // tên máy chủ / đường dẫn để truy cập 'đường dẫn' trên máy chủ 'tên máy chủ'.


Câu trả lời tốt hơn nhiều so với câu trả lời (đã khá tốt) từ John T.
innaM

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.