Я знаю, что вы можете использовать "touch", чтобы изменить доступ и изменить временные метки файла, используя флаг "-t", но возможно ли изменить временную метку "change". Если так, то как мне поступить? Большое спасибо за ваше время.
2 ответа
Вы спрашиваете, как установить значение ctime
для файла. Единственный способ сделать это - изменить системную дату, а затем изменить файл, что является довольно грубым методом, который, вероятно, нанесет вред всей вашей системе.
Если вы используете ext3
(возможно, ext2
и ext4
?) Вы можете использовать debugfs
чтобы изменить его, но для этого необходимо сначала отключить файловую систему. Вы можете найти информацию в COMMAND LINE KUNG FU: Эпизод # 80: Бандиты времени (начало о Windows; перейдите на полпути к "Hal имеет прикосновение"), чтобы прочитать о таких командах, как это: debugfs -w -R 'set_inode_field /tmp/test ctime 200901010101' /dev/mapper/elk-root
Без такого использования метаданных файловой системы вы не сможете этого сделать.
Что? Время изменения - это время последнего изменения файла.
$ touch test
$ stat test
File: `test'
Size: 749 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 33 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ me) Gid: ( 1000/ me)
Access: 2012-03-06 18:43:19.000000000 -0600
Modify: 2012-03-06 18:43:19.000000000 -0600
Change: 2012-03-06 18:43:19.000000000 -0600
$ touch test
$ stat test
File: `test'
Size: 749 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 33 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ me) Gid: ( 1000/ me)
Access: 2012-03-06 18:43:23.000000000 -0600
Modify: 2012-03-06 18:43:23.000000000 -0600
Change: 2012-03-06 18:43:23.000000000 -0600