2011-10-11 40 views
7

Tôi đọc trong sách giáo khoa mà UNIX/Linux không cho phép liên kết cứng tới các thư mục nhưng các liên kết mềm thì làm gì? Có phải vì khi chúng ta có chu kỳ và nếu chúng ta tạo ra một liên kết cứng, nó sẽ trỏ đến một số giá trị rác?Tại sao các liên kết cứng không được phép vào các thư mục trong UNIX/Linux

Nếu chu kỳ là lý do duy nhất đằng sau việc không cho phép liên kết cứng, thì tại sao các liên kết mềm được phép vào thư mục?

+1

Để tránh các chu kỳ. – bmargulies

+0

@bmargulies Sau đó, tại sao có thể với các liên kết mềm – user567879

+0

Vì hạt nhân không tuân theo chúng trong quá trình truyền tải cơ bản của cấu trúc thư mục. Nó có thể đi bộ cây, bởi vì nó không đi qua các liên kết mềm khi đi bộ trên cây. – bmargulies

Trả lời

12

Không cho phép liên kết cứng vì chúng sẽ dẫn đến chu kỳ. Một khi bạn cho phép các chu trình tạo thành, bạn phải thực hiện một bộ sưu tập rác và đánh dấu để phát hiện khi các chu kỳ của các thư mục bị cô lập (không thể truy cập được từ thư mục gốc) có thể bị xóa - điều này cực kỳ tốn kém trên đĩa.

Liên kết mềm không gây ra sự cố này vì chúng không tăng số lượng tham chiếu của thư mục được nhắm mục tiêu; do đó bạn vẫn có thể lấy đi với tính tham chiếu (với tối đa một tham chiếu :).

Vấn đề khác là các chương trình đi qua hệ thống tệp (ví dụ: find) cần tránh các chu kỳ. Họ có thể làm điều này bằng cách ghi nhớ mọi số inode mà họ đã thấy, nhưng điều này là tốn kém - nếu họ có thể phân biệt giữa các liên kết có thể dẫn đến chu kỳ (tức là softlinks) và liên kết sẽ không dẫn đến chu kỳ (mục nhập thư mục thông thường) và bỏ qua các liên kết mềm, chúng không cần theo dõi số inode nữa.

+0

Tôi nhận được quyền đầu tiên và đoạn thứ ba. Nhưng không thể hiểu được điều thứ hai. Vui lòng cung cấp giải thích rõ ràng hơn – user567879

+2

@ user567879, nói cách khác, nếu bạn có liên kết mềm đến thư mục, nó không ngăn thư mục bị xóa và xóa khỏi đĩa – bdonlan

+1

+1. Giải thích chi tiết hơn về đoạn thứ 3: http://unix.stackexchange.com/questions/22394 – ignis

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