Архивирование (tar и сжатие) с метаданными (идентификатор пользователя и ctime) в Python

StackOverflow https://stackoverflow.com/questions/2145182

Вопрос

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

А 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top