มีสามค่าเวลาที่แตกต่างกันเท่านั้นที่เก็บไว้สำหรับแต่ละไฟล์ของคุณตามที่กำหนดโดยมาตรฐาน POSIX : http://pubs.opengroup.org/onlinepubs/9699919799/ (ดูที่ส่วนคำจำกัดความฐาน -> 4. แนวคิดทั่วไป -> 4.8 ไฟล์ ปรับปรุงครั้ง)
แต่ละไฟล์มีสามประทับเวลาที่แตกต่างกันที่เกี่ยวข้อง: เวลาที่ผ่านมาของการเข้าถึงข้อมูลเวลาที่ผ่านมาการแก้ไขข้อมูลและเวลาที่สถานะไฟล์การเปลี่ยนแปลงที่ผ่านมา ค่าเหล่านี้จะถูกส่งกลับในโครงสร้างลักษณะไฟล์ struct สถิติที่อธิบายไว้ใน<SYS / stat.h>
และจาก<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.
ตัวอย่างต่อไปนี้แสดงความแตกต่างระหว่างatime , mtimeและctimeตัวอย่างเหล่านี้อยู่ใน GNU / Linux BASH คุณสามารถใช้stat -x
ใน Mac OS X หรือ BSD Dist อื่น ๆ เพื่อดูรูปแบบผลลัพธ์ที่คล้ายกัน
$ 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
เมื่อไฟล์เพิ่งสร้างขึ้นการประทับเวลาสามครั้งจะเหมือนกัน
1. เวลา
ขั้นแรกให้เข้าถึงข้อมูลของไฟล์โดยอ่าน ( less
หรือvim
) พิมพ์ออก ( cat
) หรือคัดลอกไปยังไฟล์อื่น ( 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. เวลา
ตอนนี้ขอเปลี่ยนสถานะไฟล์โดยเปลี่ยนการอนุญาต ( chmod
) หรือเปลี่ยนชื่อมัน ( 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!
โปรดทราบว่าจนถึงตอนนี้เนื้อหา ( ข้อมูล ) ของไฟล์ยังคงเหมือนเดิมเมื่อสร้าง
3. mtime
สุดท้ายเรามาแก้ไขเนื้อหาของไฟล์โดยแก้ไขไฟล์
$ 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. เวลาเกิด
โปรดทราบว่าเวอร์ชันใหม่กว่าของstat
(เช่นstat --version 8.13
ใน Ubuntu 12.04) มีข้อมูลเวลาประทับครั้งที่ 4 - เวลาเกิด ( เวลาสร้างไฟล์) แม้ว่ามันอาจจะไม่แสดงเวลาที่ถูกต้องในตอนนี้:
$ 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: -