Ý tưởng đằng sau rm không xóa tệp không thể ghi theo mặc định là gì?


13

Ý tưởng đằng sau rm không xóa tệp không thể ghi theo mặc định là gì? Mỗi lần bạn muốn xóa một tệp không thể ghi đối với người dùng hiện tại nhưng bạn có quyền ghi trên thư mục sẽ nhận được cảnh báo này và bạn cần phải đặt trước `y 'để xác nhận xóa:

rm: remove write-protected regular file 

Tôi tự hỏi tại sao các tập tin không thể ghi được xử lý theo cách đặc biệt như vậy? Một điều tôi nghĩ đến là các tệp như vậy thường là các tệp cấu hình người dùng có chứa dữ liệu bí mật của người dùng như mật khẩu được mã hóa để rm cảnh báo trước khi xóa chúng. Bây giờ, lý do thực sự là gì?

Câu trả lời:


16

Đó là bởi vì hành vi của UNIX là một chút phản trực giác trong trường hợp này. Nhiều người khá ngạc nhiên khi họ đánh dấu một tệp chỉ đọc và ai đó có thể xóa nó. Bạn chỉ cần quyền ghi vào thư mục chứa để xóa một tập tin. rmđang hỏi bạn như một phép lịch sự, trong trường hợp bạn đang hy vọng nó chỉ đọc sẽ bảo vệ nó.

Sử dụng -f(lực lượng) sẽ làm cho nó làm điều đó mà không làm phiền bạn. Nhưng sử dụng cẩn thận.


hãy cẩn thận khi gõ "rm -rf *", suy nghĩ.
ChuckCottrill

4
Một người bạn của tôi gọi đó là "Đọc thư thật nhanh". :)
kurtm

0

Tôi nghĩ bạn đã đúng về điều đó vì nó không được viết. Nếu bạn đang xóa tệp không thể ghi, thực tế, bạn đang ghi vào tệp đó. Nếu bạn không muốn được nhắc, bạn luôn có thể tạo bí danh, nói rm thực sự là rm -f.


Tôi không nghĩ rằng tôi đã có câu trả lời chính xác. Tôi tự hỏi tại sao rm lại đưa ra cảnh báo như vậy ở nơi đầu tiên, tại sao các tệp chỉ đọc được xử lý khác với các tệp có thể ghi. Tôi biết khi cảnh báo này được hiển thị, tôi tự hỏi tại sao.
dùng1042840

Bởi vì nếu bạn đặt thứ gì đó chỉ được đọc thì không giả sử được thay đổi. Điều đó bao gồm việc được gỡ bỏ. Nếu bạn đã root và yêu cầu nó xóa tập tin chỉ đọc bằng mọi cách nó muốn xác nhận rằng bạn không phạm sai lầm. Nó khiến bạn phải suy nghĩ lại về sự lựa chọn của bạn.
Jeight

1
@Jeight Điều đó không thực sự chính xác. Bạn không ghi vào tập tin khi xóa. Bạn đang viết vào thư mục chứa.
kurtm

@kurtm Bạn nói đúng. Đó là một lỗi đánh máy, nhưng lý luận cơ bản là như nhau.
Jeight
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.