/*
* Structure of an inode on the disk
*/
struct ext2_inode {
__u16 i_mode; /* File mode */
__u16 i_uid; /* Owner Uid */
__u32 i_size; /* Size in bytes */
__u32 i_atime; /* Access time */
__u32 i_ctime; /* Creation time */
__u32 i_mtime; /* Modification time */
__u32 i_dtime; /* Deletion Time */
__u16 i_gid; /* Group Id */
__u16 i_links_count; /* Links count */
__u32 i_blocks; /* Blocks count */
__u32 i_flags; /* File flags */В большинстве UNIX-систем атрибуты файла описаны похожим способом. В их состав входят владелец, размер, несколько полей времени и даты, группа, счетчик связей этого файла, число используемых блоков диска и флаги файла (стандартные разрешения чтения, записи и выполнения файлов). Какие атрибуты интересны для нас? В большинстве случаев это один из атрибутов времени и размер файла. Любой из них может быть определен переадресовыванием вывода команды
[elliptic@ellipse]$ diff /tmp/before /tmp/after
2,3c2,3
< drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:55 .
< drwxrwxrwt 9 root root 1024 Jun 16 01:55 ..
–
> drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .
> drwxrwxrwt 9 root root 1024 Jun 16 01:56 ..
97c97
< -rw-r—r– 1 ryan ryan 31533 Jun 16 01:55 fs.h
–
> -rw-r—r– 1 ryan ryan 31541 Jun 16 01:56 fs.hИз примера видно, что файл fs.h изменился. Этот способ сравнения содержимого директории обнаруживает изменение любого атрибута файла. Быстрый способ простого отслеживания изменения атрибута времени заключается в использовании команды
[elliptic@ellipse]$ ls -alt | more
total 2224
drwxrwxrwt 9 root root 1024 Jun 16 01:56 ..
drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .
-rw-r—r– 1 ryan ryan 31541 Jun 16 01:56 fs.h
-rw-r—r– 1 ryan ryan 7295 Jun 16 01:55 a.out.h
-rw-r—r– 1 ryan ryan 2589 Jun 16 01:55 acct.h
-rw-r—r– 1 ryan ryan 4620 Jun 16 01:55 adfs_fs.h…и т. д. Файлы, модифицированные последними, выводятся первыми. В DOS/Windows команда
C:\date>dir /o:d
Volume in drive C has no label
Volume Serial Number is 3C3B-11E3
Directory of C:\date
HEX-EDIT EXE 58,592 03-14-95 9:51p Hex-edit.exe
HEXEDI~1 GZ 165,110 06-05-00 11:44p hexedit-0_9_7_tar.gz
HEXEDIT EXE 158,208 06-06-00 12:04a hexedit.exe
.
..
3 file(s) 381,910 bytes
2 dir(s) 10,238.03 MB freeВ этом случае последние модифицированные файлы помещены в конец отчета. Использование атрибута «Архивный»
Расскажем о небольшой уловке, доступной пользователям DOS/Windows. Таблица размещения файлов (FAT – file allocation table) содержит атрибут файла «Архивный». Первоначально атрибут предназначался для определения факта изменения файла после последнего резервного копирования. В случае модификации файла этот атрибут свидетельствовал о необходимости создания очередной архивной копии файла. Конечно, после модификации файлов этим атрибутом можно воспользоваться для собственных целей. Посмотрите на пример просмотра директории с помощью командыC:\date>attrib
A HEX-EDIT.EXE C:\date\Hex-edit.exe
A HEXEDIT.EXE C:\date\hexedit.exe
A HEXEDI~1.GZ C:\date\hexedit-0_9_7_tar.gzОбратите внимание на символ A в начале каждой строки. Он свидетельствует об установке атрибута «Архивный» и указывает на необходимость резервного копирования файла, к которому относится этот атрибут. Если повторно использовать команду