1

Недавно я решил заархивировать некоторые данные, используя Tar. Данные состоят из многочисленных резервных копий одной и той же папки; это означает, что он содержит много дубликатов. Я прочитал это, поскольку у Tar нет индекса, он плохо работает с данными, которые содержат много дубликатов. Так что в основном мой вопрос: подойдет ли Tar для архивирования таких данных?

Я забочусь в основном о сохранении всех исходных данных в архиве, включая все временные метки файлов: создание, изменение, доступ.

2 ответа2

2

Конечно, Tar может архивировать эти резервные копии, независимо от того, сколько у вас там дубликатов. Если у вас есть 100 дубликатов файла abc.doc в 100 разных папках, он будет заархивирован 100 раз. Тем не менее, это не эффективно.

Если инструмент резервного копирования может дублировать данные, он распознает эти 100 идентичных файлов, создаст резервную копию и сослается на него 99 раз. Если одна из этих версий изменится, она удалит ссылку и создаст резервную копию отдельно.

0

GNU tar

Время создания:

Linux на самом деле не записывает время создания файла. У него есть метка времени ctime , которая иногда ошибочно принимается за время создания, но на самом деле это "время изменения inode": она записывает, когда в последний раз было изменение файла или его прав доступа, владельца и т.д. Т.е. он меняется чаще, чем mtime . ctime обрабатывается ядром и не может быть установлена пользователем на произвольные значения (хотя вы можете легко сбросить ее до текущего времени).

Время модификации:

mtime сохраняется в tar

Время доступа:

tar обычно изменяет время доступа даже к исходному файлу. Вы можете предотвратить это, используя флаг --atime-preserve . Вам также может потребоваться тег --preserve который сохраняет права доступа (а также порядок сортировки каталогов).

Я не знаю, можете ли вы сделать tar сохраненным в архивированных файлах, но вы всегда можете это исправить:

  1. распаковка
  2. Использование touch -a -d TIME FILE для каждого файла (со временем в формате [[CC]YY]MMDDhhmm[.ss])
  3. Переназначение с tar --atime-preserve

предупреждение: использование --atime-preserve настоящее время запоминает atime, чтобы сохранить его после прочтения. В большинстве систем это приведет к изменению времени ctime, которое иногда может мешать работе другого программного обеспечения (например, программного обеспечения безопасности).

Другое программное обеспечение

Вы можете взглянуть на rsync (см. Эту статью, например) или систему контроля версий (например, git).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .