Дата создания файла и изменения даты доступа к файлу

Добрый день.

stat возвращает дату последнего доступа и изменения внутри файла и изменения метаданных.

Как узнать дату создания файла?




При этом, дата последнего доступа к файлу записывается только в том случае если я файл открыл редактором, но если сделал cat или tail - дата остается без изменения.

[user@k6-302-shka ~]$ stat tmp/file1
File: `tmp/file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 804h/2052d	Inode: 1975017 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 100/ users)
Access: 2011-09-07 18:08:52.000000000 +0400
Modify: 2011-09-07 18:08:52.000000000 +0400
Change: 2011-09-07 18:08:52.000000000 +0400
Birth: -
[user@k6-302-shka ~]$ nano tmp/file1

внес изменения через редактор nano, дата доступа изменилась.

[user@k6-302-shka ~]$ stat tmp/file1
File: `tmp/file1'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d	Inode: 1975017 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 100/ users)
Access: 2011-09-07 18:10:09.000000000 +0400
Modify: 2011-09-07 18:10:12.000000000 +0400
Change: 2011-09-07 18:10:12.000000000 +0400
Birth: -

открываю файл с помощью nano - дата доступа изменяется, делаю cat - дата доступа не изменяется.

[user@k6-302-shka ~]$ nano tmp/file1
[user@k6-302-shka ~]$ stat tmp/file1
File: `tmp/file1'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d	Inode: 1975017 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 100/ users)
Access: 2011-09-07 18:16:35.000000000 +0400
Modify: 2011-09-07 18:16:14.000000000 +0400
Change: 2011-09-07 18:16:14.000000000 +0400
Birth: -
[user@k6-302-shka ~]$ cat tmp/file1
1
[user@k6-302-shka ~]$ stat tmp/file1
File: `tmp/file1'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d	Inode: 1975017 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 100/ users)
Access: 2011-09-07 18:16:35.000000000 +0400
Modify: 2011-09-07 18:16:14.000000000 +0400
Change: 2011-09-07 18:16:14.000000000 +0400
Birth: -

В чем отличие обращений к файлу nano и сat? И тот и другой читает файл, но при доступе nano дата доступа изменяется, а cat не изменяет.


В опция монтирования не вижу noatime (если предположить что дело в этом)


proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=218831,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
/dev/disk/by-uuid/d453e161-fede-4ebb-9344-1e9b269e4ec3 on / type ext3 (rw,relatime,errors=continue,barrier=0,data=ordered)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,relatime)
/dev/sda4 on /home type ext3 (rw)
/dev/sda1 on /boot type ext2 (rw)
zubastiy
Добрый день.
Как узнать дату создания файла?
Дата создания не хранится в метаданных файла. Там только Access, Change, Modify даты.

zubastiy
В чем отличие обращений к файлу nano и сat? И тот и другой читает файл, но при доступе nano дата доступа изменяется, а cat не изменяет.
У меня всё работает как положено - cat меняет время доступа к файлу.
Reiser, опции монтирования - defaults.
Это все хорошо. Только как жеж посмотреть дату создания файла?
ls возвращает дату модификации.
Про reiser интересно, учту, спсб
Вот тут
http://en.wikipedia.org/wiki/Stat_(Unix)
вы можете прочитать, что в юниксовых ФС для каждого файла хранятся три временнЫх отметки:
mtime: time of last modification (ls -l),
ctime: time of last status change (ls -lc) and
atime: time of last access (ls -lu).
Никакого “времени создания” среди них НЕТ.
Есть время изменения атрибутов файла, но не его содержимого – ctime.

Так как atime должно меняться при каждом доступе к файлу, это заметно снижает производительность, поэтому при монтировании можно использовать некоторые опции, позволяющие изменить поведение системы в этом вопросе:
noatime – вообще не менять этот атрибут.
relatime(relative atime) немного смухлевать, и менять только когда оно становится раньше mtime или ctime. С версии 2.6.29 используется в Linux по-умолчанию.
strictatime – менять atime строго как положено, при каждом обращении к файлу.

Вот ещё статья на русском языке:
http://igorka.com.ua/2010-07-29/vremenn … ime-ctime/
P.S.
Кстати, в конце статьи написано, что в ext4 появился атрибут crtime, то есть дата создания :)
Правда, посмотреть его пока нечем, разве что командой debugfs из-под рута.
Спасибо, ссылка про atime ctime mtime многое объяснила.
Ну и relatime жеж. Cat у меня при первом обращении тоже меняет метку, не обратил внимания.
 
Зарегистрироваться или войдите чтобы оставить сообщение.