Пакетное изменение измененных / созданных дат?

Я недавно купил новые жесткие диски для своего NAS. Это означает, что я копирую все данные с NAS, обновляю их и затем перемещаю обратно.

Я дошел до копирования данных с NAS, но дата изменения / создания каждого файла была изменена на дату, когда он был скопирован (сегодня).

Есть ли способ, учитывая, что у меня есть исходные данные, для пакетного обновления измененных / созданных дат скопированных файлов без необходимости их повторного копирования (мы говорим о терабайте данных)?

4 ответа

Решение

touch Можно изменить доступ и изменить время. Попробуйте что-то вроде (не проверено):

find /path/to/source_files -exec touch --reference={} /path/to/dest/{} \;

Это может сработать, если путь назначения (скопированные файлы) будет назван в качестве надмножества пути их исходного местоположения. Если отношения сложнее, вам нужно будет сделать некоторые манипуляции с путями.

Что касается ctime, это от info touch:

Несмотря на то, что "touch" предоставляет варианты изменения файла в два раза - время последнего доступа и изменения, на самом деле существует и третий: время смены inode. Это часто называют "ctime" файла. Время изменения inode представляет время, когда метаинформация файла изменилась в последний раз. Один из распространенных примеров этого - изменение прав доступа к файлу. Изменение разрешений не приводит к доступу к файлу, поэтому atime не изменяется и не изменяет файл, поэтому mtime не изменяется. Тем не менее, что-то в самом файле изменилось, и это должно быть отмечено где-то. Это работа поля ctime. Это необходимо для того, чтобы, например, программа резервного копирования могла сделать новую копию файла, включая новое значение разрешений. Другая операция, которая изменяет ctime файла, не затрагивая другие, - это переименование. В любом случае, при обычных операциях пользователь не может изменить поле ctime на указанное пользователем значение.

На *nix я бы предложил использовать rsync,

Есть DeltaCopy для Windows, но я никогда не пробовал это. Возможно, есть и другие.

Как вы справляетесь с файлами?

* Nix cp команда имеет параметр -p сохранить отметку времени. Возможно, у вас есть что-то похожее в вашей системе.

Если вы используете Windows, вы можете попробовать xxcopy (имеет период оценки). В частности, этот переключатель выглядит полезным:

/TCC  Copies the timestamp of Create Time fm src to dst.

http://www.xxcopy.com/xxtb_001.htm

(сам не пробовал, но уже много раз пользовался этой программой)

Другие вопросы по тегам