Недавно я купил новые жесткие диски для своего NAS. Это означает, что я копирую все данные с NAS, обновляю его, а затем перемещаю данные обратно.
Я дошел до копирования данных с NAS, но дата изменения / создания каждого файла была изменена на то, когда он был скопирован (сегодня).
Есть ли способ, учитывая, что у меня есть исходные данные, для пакетного обновления измененных / созданных дат в скопированных файлах без необходимости их повторного копирования (мы говорим о терабайте данных)?
touch
может изменить доступ и изменить время. Попробуйте что-нибудь вроде (непроверено):
find /path/to/source_files -exec touch --reference={} /path/to/dest/{} \;
Это может сработать, если конечный путь (скопированные файлы) будет назван как надмножество пути к их исходному местоположению. Если отношения более сложные, вам нужно будет проделать некоторые манипуляции с путями.
Что касается ctime, это от info touch
:
Хотя «прикосновение» предоставляет опции для изменения двух раз - времени последнего доступа и модификации - файла, на самом деле есть и третий: время изменения inode. Это часто называют ctime файла. Время изменения inode представляет собой время последнего изменения метаинформации файла. Один из распространенных примеров - изменение прав доступа к файлу. Изменение разрешений не приводит к доступу к файлу, поэтому atime не изменяется и не изменяет файл, поэтому mtime не изменяется. Однако кое-что в самом файле изменилось, и это нужно где-то отметить. Это работа поля ctime. Это необходимо, чтобы, например, программа резервного копирования могла сделать новую копию файла, включая новое значение разрешений. Другая операция, которая изменяет ctime файла, не затрагивая остальные, - это переименование. В любом случае при обычных операциях пользователь не может изменить поле ctime на значение, указанное пользователем.
Если вы используете Windows, вы можете попробовать xxcopy (есть пробный период). В частности, этот переключатель выглядит полезным:
/TCC Copies the timestamp of Create Time fm src to dst.
http://www.xxcopy.com/xxtb_001.htm
(сам не пробовал, но уже много раз пользовался этой программой)
Как вы копируете файлы?
* Nix cp
команда имеет параметр -p
чтобы сохранить отметку времени. Возможно, у вас есть что-то подобное в вашей системе.
На * nix я бы предложил использовать rsync
.
Там есть DeltaCopy
для Windows, но я никогда этого не пробовал. Наверное, есть и другие.