Thư mục dấu gạch chéo kép (//) là gì?


29

Tôi gõ nhầm cd //thay vì cd /. Thật ngạc nhiên, thư mục hiện tại xuất hiện như //.

Thư mục đó là gì? Tại sao nó tồn tại?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/

Câu trả lời:


42

//thường giống như /. ///phải giống như /.

lssẽ cho bạn thấy rằng cd //đã đưa bạn đến thư mục gốc, giống như cd /không.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

Cách kỹ thuật để xác nhận chúng chắc chắn là cùng một thư mục là:

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

họ sẽ in cùng một số inode, nghĩa là chúng giống nhau.

Các chi tiết chính được ghi lại trong đặc tả Độ phân giải tên đường dẫn POSIX :

Một tên đường dẫn bao gồm một dấu gạch chéo sẽ phân giải đến thư mục gốc của quy trình. Một tên đường dẫn null sẽ không được giải quyết thành công. Một tên đường dẫn bắt đầu bằng hai dấu gạch chéo liên tiếp có thể được diễn giải theo cách được xác định theo cách thực hiện, mặc dù nhiều hơn hai dấu gạch chéo hàng đầu sẽ được coi là một dấu gạch chéo.

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.