Linux - Thời gian thay đổi tệp so với thời gian sửa đổi


7

Tôi đang sử dụng Ubuntu 12.04, mặc dù tôi tưởng tượng câu hỏi này bao gồm tất cả các biến thể Linux. Trong trang dành cho statlệnh, có hai (bốn) tùy chọn định dạng có vẻ giống nhau:

Trình tự định dạng hợp lệ cho các tệp (không có --file-system):

...

% y Thời gian sửa đổi lần cuối, có thể đọc được

% Y Thời gian sửa đổi lần cuối, giây kể từ Epoch

% z Thời gian thay đổi cuối cùng, con người có thể đọc được

% Z Thời gian thay đổi cuối cùng, giây kể từ Epoch

Tuy nhiên, những giá trị này không phải lúc nào cũng bằng nhau. Ví dụ: stat --printf="%y\n%z\n" /usr/localtrên hệ thống của tôi xuất ra các thông tin sau:

2012-04-26 10: 29: 13.000000000 -0500

2013-05-06 18: 08: 19.000000000 -0500

Vậy sự khác biệt giữa "thời gian thay đổi" và "thời gian sửa đổi" là gì?


1
Vui lòng tham khảo câu hỏi SO - stackoverflow.com/questions/79809/
Ấn

Câu trả lời:


14

Lần sửa đổi cuối cùng - lần cuối cùng tệp được sửa đổi (nội dung đã được sửa đổi)

Lần thay đổi cuối cùng - lần cuối cùng / siêu dữ liệu / của tệp đã được thay đổi (ví dụ: quyền)


2
Cũng cần lưu ý rằng mtime có thể được đặt thành bất cứ thứ gì bạn muốn, ctime không thể.
Halfgaar

@Halfgaar bạn có thể nói rõ hơn một chút không?

1
Nếu bạn sao chép một tệp có cp -ahoặc rsync --archive, bạn sao chép càng nhiều dữ liệu meta càng tốt. Các mtime cũng sẽ được sao chép. Các ctime không phải là tuy nhiên, vì không có cách nào cho cphay rsyncđể thiết lập nó. Xem bài viết này tôi đã viết để biết thêm chi tiết.
Halfgaar

1
Thật đáng để chỉ ra rằng thời gian thay đổi về cơ bản là thời gian sửa đổi iNode.
Nikos
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.