ls -l hiển thị thư mục symlinked với hai dấu gạch chéo


0

Tôi vừa sao chép ~/.config thư mục này đến thư mục khác và liên kết nó trở lại $HOME.

Khi tôi chạy ls -l điều này hiện lên như thế này với dấu gạch chéo kép ở cuối:

lrwxrwxrwx  1 lud  lud     22 Jul 23 20:25 .config -> /home/lud/dots/config//

Tôi không thể nhớ nếu tôi đã thấy điều này trước đây. Tôi đã xem một thư mục symlinked khác để xem liệu điều tương tự có xảy ra ở mọi nơi không, nhưng thư mục symlinked khác chỉ có một dấu gạch chéo ngược ở cuối.

Các symlink hoạt động. Dường như không có gì bị hỏng. Tôi chỉ tự hỏi nếu dấu gạch chéo thêm có nghĩa là bất cứ điều gì, hoặc thậm chí nếu nó được cho là ở đó.

Câu trả lời:


1

Nếu bạn có một bí danh là bản đồ ls đến ls -F, nó sẽ hậu tố tất cả các tên tập tin theo loại của họ.

Khi tùy chọn này được bật, tất cả các đường dẫn đến thư mục được thêm vào một /. Vì vậy, nếu đường dẫn đích của liên kết tượng trưng đã có một dấu gạch chéo ngược được lưu trữ, bạn sẽ thấy hai đường dẫn.


Để xem nếu nó là trường hợp, hãy liệt kê bí danh của bạn với alias -p.
Kamil Maciorowski

2

POSIX định nghĩa:

3.271 Tên đường dẫn

[Liên] Một tên đường dẫn có thể tùy ý chứa một hoặc nhiều dấu vết <slash> nhân vật. Nhiều lần liên tiếp <slash> các nhân vật được coi là giống như một <slash>, ngoại trừ trường hợp chính xác là hai người dẫn đầu <slash> nhân vật.

Mỗi một trong những liên kết này sẽ hoạt động:

.config -> /home/lud/dots/config//
.config -> /home/lud/dots/config/
.config -> /home/lud/dots/config

(Mặc dù nếu /home/lud/dots/config là một tệp, chỉ có đường dẫn cuối cùng sẽ tạo một liên kết tượng trưng hợp lệ).

Symlink của bạn là như vậy bởi vì nó được tạo ra theo cách này (trừ khi câu trả lời khác này áp dụng). Bạn rõ ràng đã đưa ra đường dẫn đích với hai dấu gạch chéo và nó là đường dẫn hợp lệ. Lưu ý bạn có thể liên kết với hầu hết mọi thứ; lệnh này

ln -s path/that//may///not/exist/foo//// baz

sẽ tạo một liên kết tượng trưng

baz -> path/that//may///not/exist/foo////

Bản thân symlink rất có thể sẽ bị hỏng vì bạn không có thư mục foo/ tại con đường này Sự tồn tại của mục tiêu quan trọng khi bạn cố gắng sử dụng symlink, điều đó không quan trọng đối với ln -s Tuy nhiên. Nếu path/that/may/not/exist/foo/ tồn tại, symlink sẽ hoạt động.

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.