Назад | Перейти на главную страницу

Даты изменения / создания партии?

Недавно я купил новые жесткие диски для своего 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, но я никогда этого не пробовал. Наверное, есть и другие.