Код: Выделить всё
import tarfile
from pathlib import Path
source = Path("/root/src/")
with tarfile.open("foo.tar.gz", "w:gz", dereference=False) as tar:
file_list = list(source.rglob('*'))
for file in file_list:
tar.add(file, arcname=file.relative_to(source.parent), recursive=False)
Проблема возникает, когда я пытаюсь извлечь архив с помощью GNU tar (v1.35):
Код: Выделить всё
[...]
tar: src/ca-certificates/extracted/cadir/8508e720.0: Cannot create symlink to ‘Certainly_Root_E1.pem’: Permission denied
src/ca-certificates/extracted/cadir/a2c66da8.0
tar: src/ca-certificates/extracted/cadir/a2c66da8.0: Cannot create symlink to ‘DigiCert_Trusted_Root_G4.pem’: Permission denied
[...]
Код: Выделить всё
$ tar -cvzf foo.tar.gz -C /root/src/
Я знаю, что могу создать подпроцесс и вызвать GNU tar из Python, но я бы хотел использовать встроенный модуль, если это возможно.
Заранее спасибо.>
Подробнее здесь: https://stackoverflow.com/questions/798 ... extraction
Мобильная версия