Chỉ có BA giá trị thời gian riêng biệt được lưu trữ cho mỗi tệp của bạn, như được xác định theo Tiêu chuẩn POSIX : http://pub.opengroup.org/onlinepub/9699919799/ (xem phần Định nghĩa cơ sở -> 4. Khái niệm chung -> 4.8 Tệp Cập nhật lần)
Mỗi tệp có ba dấu thời gian liên quan riêng biệt: thời gian truy cập dữ liệu lần cuối , thời gian sửa đổi dữ liệu lần cuối và thời gian thay đổi trạng thái tệp lần cuối . Các giá trị này được trả về trong cấu trúc đặc điểm cấu trúc tệp, như được mô tả trong <sys / stat.h> .
Và từ <sys / stat.h> :
atime is for Last data access timestamp.
mtime is for Last data modification timestamp.
ctime is for Last file status change timestamp.
Các ví dụ sau đây cho thấy sự khác biệt giữa atime , mtime và ctime , những ví dụ này có trong GNU / Linux BASH. Bạn có thể sử dụng stat -x
trong Mac OS X hoặc BSD Dist khác. để xem định dạng đầu ra tương tự.
$ stat --version
stat (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Michael Meskes.
$
$ touch test
$ stat test
File: `test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828525 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-16 10:58:28.609223953 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 10:58:28.609223953 +0800
Khi tệp vừa được tạo, ba dấu thời gian là như nhau.
1. atime
Trước tiên, hãy truy cập dữ liệu của tệp bằng cách đọc ( less
hoặc vim
), in ra ( cat
) hoặc sao chép nó sang tệp khác ( cp
).
$ cat test #Nothing will be printed out, since the file is empty
$ stat test
File: `test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828525 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-16 10:59:13.182301069 +0800 <-- atime Changed!
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 10:58:28.609223953 +0800
2. thời gian
Bây giờ, hãy thay đổi trạng thái tệp, bằng cách thay đổi quyền ( chmod
) hoặc đổi tên nó ( mv
)
$ chmod u+x test
$ stat stet
File: `test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828525 Links: 1
Access: (0764/-rwxrw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 11:04:10.178285430 +0800 <-- ctime Changed!
$
$ mv test testing
$ stat testing
File: `testing'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828525 Links: 1
Access: (0764/-rwxrw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 10:58:28.609223953 +0800
Change: 2014-03-16 11:06:33.342207679 +0800 <-- ctime Changed again!
Lưu ý rằng cho đến bây giờ, nội dung ( dữ liệu ) của tệp vẫn giống như khi nó được tạo.
3. thời gian
Cuối cùng, hãy sửa đổi nội dung của tệp bằng cách chỉnh sửa tệp.
$ echo 'Modify the DATA of the file' > testing
$ echo 'Modify the DATA of the file also change the file status' > testing
$ stat testing
File: `testing'
Size: 56 Blocks: 8 IO Block: 4096 regular file
Device: 811h/2065d Inode: 98828525 Links: 1
Access: (0764/-rwxrw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-16 10:59:13.182301069 +0800
Modify: 2014-03-16 11:09:48.247345148 +0800 <-- mtime Changed!
Change: 2014-03-16 11:09:48.247345148 +0800 <-- ctime also Changed!
4. giờ sinh
Cũng lưu ý rằng phiên bản mới hơn stat
(ví dụ stat --version 8.13
trong Ubuntu 12.04) có thông tin dấu thời gian thứ 4 - Thời gian sinh (thời gian tạo tệp). Mặc dù hiện tại nó có thể không hiển thị thời gian chính xác:
$ stat --version
stat (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Michael Meskes.
$
$ stat birth_time
File: `birth_time'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 4073946 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ bingyao) Gid: ( 1000/ bingyao)
Access: 2014-03-16 10:46:48.838718970 +0800
Modify: 2014-03-16 10:46:48.838718970 +0800
Change: 2014-03-16 10:46:48.838718970 +0800
Birth: -