POSIX Standardında tanımlandığı şekilde dosyalarınızın her biri için depolanan yalnızca ÜÇ farklı zaman değeri vardır : http://pubs.opengroup.org/onlinepubs/9699919799/ (bkz. Temel Tanımlar bölümü -> 4. Genel Kavramlar -> 4.8 Dosya Kez Güncelleme)
Her dosyanın üç ayrı ilişkili zaman damgası vardır: son veri erişim zamanı, son veri değişikliğinin zamanı ve dosya durumunun en son değiştirildiği saat . Bu değerler, <sys / stat.h> ' de açıklandığı gibi dosya özellikleri yapı yapı statünde döndürülür .
Ve <sys / stat.h> öğesinden :
atime is for Last data access timestamp.
mtime is for Last data modification timestamp.
ctime is for Last file status change timestamp.
Aşağıdaki örnekler atime , mtime ve ctime arasındaki farkı göstermektedir , bu örnekler GNU / Linux BASH'dadır. Sen kullanabilirsiniz stat -x
Mac OS X veya diğer BSD Dist. benzer çıkış formatını görmek için.
$ 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
Dosya yeni oluşturulduğunda, üç zaman damgası aynıdır.
1. atime
Birincisi, let en erişmek (bunu okuyarak dosyanın verilerini less
veya vim
(yazdırmanın) cat
başka bir dosyaya) ya da kopyalamak ( 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. ctime
Şimdi let değiştirmek izin (değiştirerek, dosya durumunu chmod
() veya yeniden adlandırma 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!
Şimdiye kadar , dosyanın içeriğinin ( verilerinin ) oluşturulduğu zamankilerle aynı olduğunu unutmayın.
3. mtime
Son olarak, dosyayı düzenleyerek dosyanın içeriğini değiştirelim .
$ 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. doğum zamanı
Ayrıca stat
(örneğin stat --version 8.13
Ubuntu 12.04'te) yeni sürümünün 4. zaman damgası bilgisine sahip olduğunu unutmayın - Doğum Saati (dosya oluşturma süresi). Şimdilik doğru zamanı göstermese de:
$ 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: -