Code: Select all
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)
Das Problem tritt auf, wenn ich versuche, das Archiv mit GNU tar (v1.35) zu extrahieren:
Code: Select all
[...]
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
[...]
Code: Select all
$ tar -cvzf foo.tar.gz -C /root/src/
Ich weiß, dass ich einen Unterprozess erzeugen und GNU tar aus Python aufrufen kann, aber wenn möglich würde ich gerne das eingebaute Modul verwenden.
Vielen Dank im Voraus.
Mobile version