các tệp đã mở trong một thư mục vẫn có thể được lưu sau khi thư mục bị xóa - Linux


0

Đây là tính năng gây phiền nhiễu của Linux.

Nếu tôi mở một tệp trong một thư mục và sau đó xóa thư mục đó và sao chép một thư mục khác có cùng tên vào cùng một vị trí, tôi vẫn có thể chỉnh sửa và lưu tệp đã mở, nhưng nó sẽ vào thùng rác! Tôi đã phạm sai lầm tương tự nhiều lần. Tôi tiếp tục chỉnh sửa tệp đã mở và nghĩ rằng nó sẽ được lưu vào thư mục mới được sao chép, nhưng cuối cùng tôi đã mất tất cả các chỉnh sửa.

Tôi có thể vô hiệu hóa tính năng này không?


Không phải là một câu hỏi lập trình.
Oliver Charlesworth

2
Tính năng này không gây phiền nhiễu, và nhiều tiện ích yêu cầu nó. Linux và hầu hết các hệ thống Posix (đặc biệt là tất cả các hệ thống giống Unix) đều yêu cầu hành vi đó. Và tôi không hiểu chính xác ý bạn là gì khi xóa một thư mục. Tòa nhà rmdir(2)sẽ thất bại nếu bạn vẫn có một số mục nhập trong thư mục. Trình chỉnh sửa của bạn sẽ phát hiện tình huống của bạn ( emacsthực hiện điều đó). Bạn cũng nên học cách sử dụng một hệ thống kiểm soát phiên bản (như git) cho mã nguồn của mình.
Basile Starynkevitch

bạn sử dụng trình chỉnh sửa nào để chỉnh sửa tập tin? về mặt logic, nó sẽ đưa ra một lỗi / cảnh báo nếu bạn lưu một tệp trong thư mục không tồn tại (đã xóa).

Nếu nó đi vào Thùng rác, bạn đã không xóa tệp, nhưng đã di chuyển tệp và tệp được chỉnh sửa tại vị trí mới. Đó là một tính năng.
Daniel Beck

Câu trả lời:


2

Đây là chức năng như thiết kế. Bộ mô tả tệp có thể vẫn mở ngay cả sau khi tệp không được liên kết. Trang hướng dẫn hủy bỏ liên kết (2) cho biết:

unlink () xóa tên khỏi hệ thống tệp ... Nếu tên được đề cập đến một socket, fifo hoặc thiết bị, tên của nó sẽ bị xóa nhưng các quá trình mở đối tượng có thể tiếp tục sử dụng nó.

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.