import tarfile import sys def unarchive(skip_self_hardlinks, archive, dest): with tarfile.open(archive) as tar_fd: for info in tar_fd: if skip_self_hardlinks and info.islnk() and info.name == info.linkname: print("Skipping", info.name) continue print(info.name) tar_fd.extract(info, dest) skip_str, archive, dest = sys.argv[1:] skip = skip_str == "skip" unarchive(skip, archive, dest)