Управление метками времени файлов с помощью команды touch
Команда touch позволяет не только создавать файлы, но и обновлять их метки времени. Это полезно для тестирования или когда вам нужно синхронизировать метки времени между файлами.
Обновление всех меток времени
Для обновления всех меток времени (доступа, модификации и изменения) до текущего времени:
touch testfile.txt
Проверьте метки времени:
stat testfile.txt
Вывод:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:45:10.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:45:10.000000000 +0000
Birth: -
Обновление только времени доступа
Для обновления только времени доступа:
touch -a testfile.txt
Проверьте метки времени:
stat testfile.txt
Вывод:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:46:15.000000000 +0000
Birth: -
Обратите внимание, что время изменения (ctime) также обновляется, так как метаданные файла изменились.
Обновление только времени модификации
Для обновления только времени модификации:
touch -m testfile.txt
Проверьте метки времени:
stat testfile.txt
Вывод:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:47:20.000000000 +0000
Change: 2023-05-15 14:47:20.000000000 +0000
Birth: -
Снова время изменения также обновляется.
Установка конкретных меток времени
Вы можете установить конкретную метку времени, используя опцию -d с командой touch:
touch -d "2023-01-01 12:00:00" testfile.txt
Проверьте метки времени:
stat testfile.txt
Вывод:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:48:30.000000000 +0000
Birth: -
Это устанавливает как время доступа, так и время модификации на 1 января 2023 года, 12:00 дня. Время изменения все еще обновляется до текущего времени.
Создание нового файла с метками времени существующего файла
Вы также можете использовать опцию -r для ссылки на метки времени другого файла:
## Create a new file
touch newfile.txt
## Set its timestamps based on testfile.txt
touch -r testfile.txt newfile.txt
Проверьте метки времени нового файла:
stat newfile.txt
Вывод:
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 2101100 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:49:45.000000000 +0000
Birth: -
Время доступа и модификации newfile.txt теперь совпадают с временем testfile.txt.