Архивирование (tar и сжатие) с метаданными (идентификатор пользователя и ctime) в Python
Вопрос
Я выполняю резервное копирование файловой системы, и мне нужно убедиться, что метаданные сохранены (владелец файла и время создания).
А tarfile
Модуль в Python действительно полезен, и я широко использую его в своем решении.Однако я не могу создать файл tar с файлами, сохраняющими их метаданные (предположительно потому, что copy
и copy2
не могу этого сделать).
Как бы вы подошли к этой проблеме изнутри Python?
РЕДАКТИРОВАТЬ:
Просто чтобы дать понять сообществу:тот tarfile
модуль на Python делает предоставить средства для хранения метаданных через Tarinfo
объект.По сути, Tarinfo
объект является членом Tar
объект, и он содержит всю информацию, которая может вам понадобиться.Пожалуйста, обратитесь к принятому сообщению.
Спасибо!
Решение
«Предположительно»?Ты имеешь в виду, что не знаешь?У тебя есть пытался?Тем не менее, насколько я знаю, tarfiles не сохраняет ctime, и в этом нет особого смысла, поскольку ctime должно сбрасываться при распаковке.Однако mtime сохраняется, а модуль tarfile обрабатывает mtime.
Модуль tarfile Python использует объекты TarInfo при добавлении файлов.Вот так:
TarFile.addfile(tarinfo, fileobj=None)
Объект TarInfo содержит информацию о файле:
TarInfo.mtime
Time of last modification.
TarInfo.uid
User ID of the user who originally stored this member.
TarInfo.gid
Group ID of the user who originally stored this member.
И множество других метаданных.Видеть http://docs.python.org/library/tarfile.html