Existe-t-il un moyen de convertir une zip
archive en tar
archive sans extraire au préalable dans un répertoire temporaire? (et sans écrire ma propre implémentation de tar
ou unzip
)
shell-script
tar
zip
user253751
la source
la source
Réponses:
Ceci est maintenant disponible en tant que commande installable de PyPI, voir la fin de ce post.
Je ne connais aucun utilitaire "standard" qui le fasse, mais quand j'ai eu besoin de cette fonctionnalité, j'ai écrit le script Python suivant pour passer de ZIP aux archives tar compressées Bzip2 sans extraire quoi que ce soit sur le disque d'abord:
Il suffit de l'enregistrer
zip2tar
et de le rendre exécutable ou de l'enregistrerzip2tar.py
et de l'exécuterpython zip2tar.py
. Fournissez le nom de fichier ZIP comme argument au script, le nom de fichier de sortie pourxyz.zip
seraxyz.tar.bz2
.La sortie compressée Bzip2 est normalement beaucoup plus petite que le fichier zip car ce dernier n'utilise pas de modèles de compression sur plusieurs fichiers, mais il y a également moins de chances de récupérer un fichier ultérieur si quelque chose dans le fichier Bzip2 est incorrect.
Si vous ne voulez pas que la sortie soit compressée, supprimez
:bz2
et.bz2
du code.Si vous avez
pip
installé dans un environnement python3, vous pouvez faire:pour obtenir un
zip2tar
utilitaire de ligne de commande faisant ce qui précède (avertissement: je suis l'auteur de ce package).la source
time
manque unimport
.time
commentaire, je mets à jour la réponseLa
tar
commande traite des systèmes de fichiers. Son entrée est une liste de fichiers qu'il lit ensuite à partir d'un système de fichiers (y compris un grand nombre de métadonnées). Vous devrez présenter le fichier zip comme un système de fichiers pour que latar
commande le lise.Un système de fichiers virtuel - AVFS permettra à tout programme de regarder à l'intérieur des fichiers archivés ou compressés via une interface de système de fichiers standard via FUSE .
Il y a des informations détaillées dans le fichier Lisezmoi d'avfs-fuse et certaines distributions ont packages pour cela.
Un que vous avez installé AVFS, alors vous pouvez
AVFS remplira toutes les informations du système de fichiers manquantes dans le zip, comme la propriété du fichier, que tar récupérera.
la source
Voici un petit extrait qui convertit une archive ZIP en une archive TAR.GZ correspondante OnTheFly.
Conversion d'archive ZIP en archive TAR à la volée
La source
la source