
действительно меняется имя файла, а inode - идентифика-
тор файла остается неизменным - Inode: 659938.
Так я плавно подошел к параметру ctime. Для каталогов
и для файлов этот параметр меняется после выполнения
команд chmod, и chown.
stat timetest/dir1/
Access: 2010-07-29 18:49:00.602972037 +0300
Modify: 2010-07-29 18:49:00.602972037 +0300
Change: 2010-07-29 18:49:00.602972037 +0300
igor@adm-ubuntu:~$ chown igor:igor timetest/
dir1
igor@adm-ubuntu:~$ stat timetest/dir1/
Access: 2010-07-29 18:49:00.602972037 +0300
Modify: 2010-07-29 18:49:00.602972037 +0300
Change: 2010-07-29 18:52:07.154977433 +0300
igor@adm-ubuntu:~$ chmod o-r timetest/dir1
igor@adm-ubuntu:~$ stat timetest/dir1/
Access: 2010-07-29 18:49:00.602972037 +0300
Modify: 2010-07-29 18:49:00.602972037 +0300
Change: 2010-07-29 18:52:26.950977903 +0300
Для файла ctime меняется и после создания жесткой
ссылки на файл:
stat timetest/fi le4
Access: 2010-07-29 18:54:14.007298839
+0300
Modify: 2010-07-29 17:11:32.442977462
+0300
Change: 2010-07-29 18:55:46.318977548
+0300
igor@adm-ubuntu:~$ ln timetest/fi le4
timetest/lnfi le6
igor@adm-ubuntu:~$ stat timetest/fi le4
Access: 2010-07-29 18:54:14.007298839
+0300
Modify: 2010-07-29 17:11:32.442977462
+0300
Change: 2010-07-29 18:56:17.998971658
+0300
На этом буду заканчивать свой практический экспери-
мент, но в конце о двух новых временных атрибутах кото-
рые появились в файловой системе ext4. Это долгождан-
ный многими crtime - create time - время создания файла,
с которым очень часто путали параметр ctime. И параметр
dtime - delete time - время удаления файла.
Как же посмотреть время создания файла - crtime? Так
как функционал новый, то пока не нашел команды которая
выдает эту информацию, но нашел как выходят из положе-
ния другие. Для этого используют команду debugfs. У меня
в Ubuntu она шла по умолчанию. Чтобы воспользоваться
программой нужны права администратора и имя раздела
на котором находится файл.
Смотрю куда у меня примонтирован домашний каталог,
в котором я работал:
mount | grep home
/dev/sda4 on /home type ext4 (rw)
Далее используем команду debugfs в таком виде:
sudo debugfs -R 'stat /igor/timetest/' /
dev/sda4
После нажатия Enter вижу следующую информацию:
Inode: 659937 Type: directory Mode: 0755
Flags: 0x80000
Generation: 3428284077 Version:
0x00000000:00000018
User: 1000 Group: 1000 Size: 4096
File ACL: 0 Directory ACL: 0
Links: 3 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x4c51a4a1:ee2c6428 -- Thu Jul 29
18:56:17 2010
atime: 0x4c51a398:029e0340 -- Thu Jul 29
18:51:52 2010
mtime: 0x4c51a4a1:ee2c6428 -- Thu Jul 29
18:56:17 2010
crtime: 0x4c517d65:4ee9130c -- Thu Jul 29
16:08:53 2010
Size of extra inode fi elds: 28
EXTENTS:
(0): 2650522
Чтобы вернуться в консоль, нажимаю q. Видим
пара-
метр crtime равный Thu Jul 29 16:08:53 2010, что совпадает
с временем создания (см. самый первый вывод команды
stat).
А где же параметр dtime? А он появляется только, ког-
да файл удален. А как тогда его посмотреть? А посмотреть
можно по inode. На примере файла fi le8:
Смотрим сначала inode файла:
ls -li timetest/fi le8
659938 -rw-r--r-- 1 igor igor 8 2010-07-29
18:34 timetest/fi le8
inode равен 659938. Теперь я удаляю файл:
rm timetest/fi le8
и выполняю команду debugfs, где указываю не имя фай-
ла, а inode:
sudo debugfs -R 'stat <659938>' /dev/sda4
Inode: 659938 Type: regular Mode: 0644
Flags: 0x80000
Generation: 3428285866 Version:
0x00000000:00000001
User: 1000 Group: 1000 Size: 0
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x4c51a95e:8afe201c -- Thu Jul 29
19:16:30 2010
atime: 0x4c519f7c:68a882f8 -- Thu Jul 29
18:34:20 2010
mtime: 0x4c51a95e:8afe201c -- Thu Jul 29
19:16:30 2010
crtime: 0x4c51972d:12d40d20 -- Thu Jul 29
17:58:53 2010
dtime: 0x4c51a95e -- Thu Jul 29 19:16:30
2010
Size of extra inode fi elds: 28
EXTENTS:
Вот и параметр dtime нашелся.
На этом все. Надеюсь, статья будет кому-то полезной.
www.igorka.com.ua
U
ser
A
nd
LINUX
Other
ualinux.com
33
U & L
1 1 - 0 1