2013-08-13 21 views

Trả lời

5

Tệp không bị xóa miễn là một số quy trình có tệp mở. Khi một tập tin được đóng lại, hạt nhân đầu tiên kiểm tra số lượng của quá trình có tập tin mở. Nếu số này đã đạt đến 0, thì hạt nhân sẽ kiểm tra số lượng liên kết; nếu nó là 0, nội dung của tập tin sẽ bị xóa.

Để báo giá từ người đàn ông unlink:

Nếu tên là mắt xích cuối cùng vào một tập tin nhưng bất kỳ quy trình vẫn có file mở file sẽ vẫn tồn tại cho đến khi các tập tin cuối cùng mô tả đề cập đến nó đã đóng.

+0

Điều đó cho biết việc hủy liên kết luôn xóa tên và đôi khi xóa tệp. Nếu bạn có thể xem tệp trong 'ls', tên chưa được xóa. Vì vậy, đó không phải là những gì đang xảy ra. Bạn có thể kiểm tra điều này bằng cách mở một tập tin trong một tiến trình, sau đó xóa nó trong một tiến trình khác và thực hiện 'ls'. – philh

5

Khi tệp bị xóa, nó sẽ không được nhìn thấy trên hệ thống tệp. Tuy nhiên, có thể một tệp khác có cùng tên tệp được tạo trên cùng một vị trí.

Bạn có thể kiểm tra số nút được hiển thị trong lsofls -i để kiểm tra xem chúng có thực sự là cùng một tệp hay không.