Существуют ли способы защитить метаданные «Дата создания» файлов?

Существуют ли способы защитить метаданные «Дата создания» файлов?

Недавно я просматривал и реорганизовывал старые фотографии и столкнулся со многими случаями, когда Date createdметаданные не отражали дату, когда фотографии были сделаны (или отсканированы), а вместо этого указывали дату и время, когда они были в последний раз скопированы из другого архивного каталога (я предполагаю). Хотя мой конкретный сценарий включает только файлы изображений, я ищу решение, которое можно применить к любым типам файлов.

Есть ли какие-либо советы/методы, которые помогут предотвратить возникновение подобной ситуации в будущем в Windows/Linux, например, сделать Date createdметаданные доступными только для чтения?

Также буду очень признателен за любые советы о том, как установить приблизительное (или точное) значение Date createdдля исправления этих обновленных файлов :)

решение1

«Дата создания» — этобессмысленный, это всегда было просто о конкретномпримерэтого файла. Windows не позволяет изменять его вручную, а Linux вообще даже неиметьдо недавнего времени. (И даже тогда только некоторые файловые системы хранят время «рождения», и нет общего API для доступа к нему. Обратите внимание, что «ctime» в Linux — этонетвремя создания.)

Вам повезет гораздо больше, если вы попытаетесь сохранить"Дата изменена"временная метка, которая больше касаетсясодержаниефайла. Это то, что показывает большинство файловых менеджеров. И большинство программ уже сохраняют его по умолчанию – он хранится в Dropbox, он хранится в Zip-архивах, он даже передается при загрузке файловчерез Интернет.

Поэтому мое общее предложение – искать способы «заблокировать»Измененныйtimestamp. Блокировка сложнее (хотя, вероятно, не очень необходима), но в Linux было бы просто написать скрипт, чтобы по крайней меререзервное копирование и восстановлениеэто:

#!/usr/bin/env perl
sub mtime { return (stat shift)[9]; }
print "#!/bin/sh\n";
for $file (grep {-f} glob("*")) {
    print "touch -d @".mtime($file)." '$file'\n";
}

(Ну, это резервный скрипт, которыйгенерирует(Скрипт восстановления.)

Однако вы говорите о фотографиях. Я предполагаю, что они хранятся в формате JPEG, а не в 'raw'-форматах. Большинство инструментов управления фотографиями поддерживают встраивание метаданных "Exif" в JPEG, и большинство камер делают это автоматически. Так что для Windows в проводнике файлов вы можете просто включить столбец "Дата съемки" вместо "Дата создания/изменения", и он покажет вам даты фотографий из файлов JPEG.

Связанный контент