it-swarm-vi.com

Sự khác biệt giữa sửa đổi và thay đổi trong bối cảnh lệnh stat là gì?

Trang hướng dẫn của lệnh stat nói:

   %x     Time of last access
   %y     Time of last modification
   %z     Time of last change

Tôi không thể hiểu sự khác biệt giữa sửa đổithay đổi. Tôi hiểu các từ là từ đồng nghĩa (tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi), nhưng đầu ra của chúng là khác nhau.

Tôi đã thử lệnh sau

stat --printf="Change %z\nAccess %x\nModify %y\n" p.txt

Bây giờ khi tôi mở p.txt, thời gian truy cập được thay đổi, tôi chuyển sang chế độ chèn, chỉnh sửa tệp, sửa đổi và thay đổi thời gian vẫn như cũ.

Thay đổi 2010-10-06 12: 48: 39.286252389 +0500 [.__.] Truy cập 2010-10-06 12:49:14.962243456 +0500 [.___.] Sửa đổi 2010-10-06 12: 48: 39.234498878 +0500 [.__.]

Khi tôi viết các thay đổi vào tệp :w, sửa đổi và thay đổi, cả hai đều thay đổi nhưng đưa ra các giá trị khác nhau.

Thay đổi 2010-10-06 12:51:21.949082169 +0500 [.___.] Truy cập 2010-10-06 12: 51: 21.908246082 +0500 [.___.908246082 +0500 [.__.]

Vậy ý nghĩa của "sửa đổi" và "thay đổi" trong bối cảnh này là gì? Đó là, thời gian sửa đổi và thay đổi cho thời gian của sự kiện nào?

Cảm ơn

137
Andrew-Dufresne

Điều này đã được trả lời trong câu hỏi này , mà tôi trích dẫn (văn bản gốc của echox ):

Có 3 loại "dấu thời gian":

  • Truy cập - lần cuối cùng đọc tệp
  • Sửa đổi - lần cuối cùng tệp được sửa đổi (nội dung đã được sửa đổi)
  • Thay đổi - lần cuối cùng dữ liệu meta của tệp đã được thay đổi (ví dụ: quyền)

Bài đăng này trên StackOverflow giải thích sự khác biệt giữa ba thời điểm khác nhau theo quan điểm giao diện lập trình.

154
Riccardo Murri