Изменить дату создания файла

Могу ли я изменить дату создания какого-либо файла с помощью Python в Linux?


person Max Frai    schedule 20.05.2009    source источник
comment
Тот же вопрос для Windows: stackoverflow.com/q/4996405/321973   -  person Tobias Kienzler    schedule 15.12.2014


Ответы (5)


Файловая система Linux и Unix хранит:

Доступ к файлам, время изменения и модификации (помните, что UNIX или Linux никогда не сохраняют время создания файла, это любимый вопрос, который задают на собеседовании системного администратора UNIX/Linux)

Знакомство с файловыми системами UNIX/Linux

person Ólafur Waage    schedule 20.05.2009
comment
Примечание: в некоторых системах Unix, таких как FreeBSD, есть st_birthtime. - person jfs; 23.12.2015
comment
вы можете извлечь crtime из ext4 fs, используя функция xstat - person jfs; 08.11.2017
comment
Это уже не правда, что Linux больше не поддерживает время создания. Смотрите мой ответ ниже. - person Gringo Suave; 14.02.2019
comment
Дело в том, что ext4 поддерживает этот атрибут crtime , AFAIU, который не должен иметь того же значения, что и в других (или только в Windows?) файловых системах. Это конкретное свойство inode, а не само содержимое. И я думаю, что по этой причине нет никакого API для его изменения или установки (на самом деле это то, о чем просил ОП). - person mirh; 06.02.2020

Вы можете использовать os.utime для изменения доступа и времени, но не Дата создания.

person Nadia Alramli    schedule 20.05.2009
comment
›Установите время доступа и изменения. Но мне нужна дата создания. - person Max Frai; 20.05.2009
comment
Цитата из документов по этой функции: установите время доступа и изменения файла, указанного путем. .. поэтому вы не можете использовать его для установки даты создания. - person Epcylon; 20.05.2009
comment
Было бы неплохо добавить, что понятие даты создания файла не существует в большинстве нативных файловых систем *nix. - person tzot; 21.05.2009

Я не эксперт по UNIX, поэтому, возможно, я ошибаюсь, но я думаю, что UNIX (или Linux) не хранит время создания файла.

person Nick Dandoulakis    schedule 20.05.2009

Ознакомьтесь с os.utime.

os.utime(file_path,(new_atime,new_mtime))
person dahoiv    schedule 05.10.2015
comment
это не меняет время creation, как прямо сказано в ответе @Nadia Alramli. - person jfs; 23.12.2015

Уже неправда, что Linux не поддерживает время создания. Видеть:

Обратите внимание на этот конкретный ответ, чтобы просмотреть C-код, который отображает поле:

Если автор этого сообщения может помочь, я мог бы создать оболочку с ctypes, чтобы изменить ее из Python.

person Gringo Suave    schedule 14.02.2019