Из C mtime и atime можно установить с помощью utime(2)
и его родственников.utime(2)
само дает вам секундную точность, utimes(2)
имеет микросекунды, а utimensat(2)
дает вам наносекунды.Существуют варианты, такие как futime
, если вместо имени файла есть дескриптор файла.
Python может предоставить то же самое с помощью функции os.utime
.
Традиционно это невозможно произвольноизменить otime или ctime, кроме как путем ручного редактирования необработанной файловой системы.Я не знаю, что Linux предоставил какой-либо API ядра для их изменения.Конечно, вы можете обновить ctime до текущего времени, изменив его состояние каким-либо образом, и вы можете обновить otime до текущего времени, удалив и заново создав файл.В принципе, вы можете установить для них другое время, сначала изменив системные часы (если вы root), но это может испортить множество других вещей в системе и, вероятно, является плохой идеей.