zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Добрый день. 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) |
Nebulosa |
|
Темы:
9
Сообщения:
913
Участник с: 05 марта 2009
|
zubastiyДата создания не хранится в метаданных файла. Там только Access, Change, Modify даты. zubastiyУ меня всё работает как положено - cat меняет время доступа к файлу. Reiser, опции монтирования - defaults. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Это все хорошо. Только как жеж посмотреть дату создания файла? ls возвращает дату модификации. Про reiser интересно, учту, спсб |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Вот тут 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 из-под рута. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Спасибо, ссылка про atime ctime mtime многое объяснила. Ну и relatime жеж. Cat у меня при первом обращении тоже меняет метку, не обратил внимания. |