Avec un nombre croissant de formats de fichiers d'archive / compression, existe-t-il un seul outil de ligne de commande gratuit / open-source pour les gouverner tous? Peut-être quelque chose avec un ensemble de drapeaux cohérent / unifié? (notez ma référence implicite amicale à tar )
Une fois, j'ai rencontré un ensemble d'alias destinés à simplifier considérablement la tâche de compression / décompression des fichiers avec des liaisons vers tar
et d'autres utilitaires, mais je ne peux plus le trouver.
Mise à jour:
Comment puis-je configurer quelque chose comme atool
ne pas utiliser unzip
pour extraire des fichiers zip (qui ne peut apparemment pas gérer des fichiers de plus de 4 Go) et utiliser à la gunzip
place?
$ aunpack large_file.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: large_file.zip
warning [large_file.zip]: 1491344848 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [large_file.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code
tar
utilities
compression
Amelio Vazquez-Reina
la source
la source
unpack
différenceatool
?7z
.Réponses:
J'utilise atool . Ça fait le boulot. Il fonctionne avec de nombreux formats, mais pas tous:
tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip etc.
Ces outils de compression sont toujours nécessaires, bien que atool soit simplement un frontal pour eux.
J'aime particulièrement la
als
commande qu'il fournit qui répertorie le contenu de tout format d'archive pris en charge.La
atool
commande principale utilise ses propres indicateurs pour extraire les archives (en transmettant les indicateurs appropriés aux outils d'extraction sous-jacents spécifiques).Oh, et c'est dans les dépôts de certaines distributions (Fedora dans mon cas, bien que si je me souviens bien, quand j'ai utilisé Ubuntu, il n'était pas dans leurs dépôts à l'époque. Et j'ai installé à partir d'un tarball.).
Mise à jour sur les référentiels : atool se trouve dans les référentiels des distributions suivantes (versions actuelles vérifiées uniquement):
Je suis sûr qu'il y en a d'autres ... vraisemblablement, les distributions les plus modernes.
Réponse à la question mise à jour "Comment puis-je configurer quelque chose comme atool pour ne pas utiliser la décompression pour extraire les fichiers zip ... et utiliser gunzip à la place" :
Modifiez le fichier de configuration atool
~/.atoolrc
et ajoutez la ligne:avec le bon chemin vers votre programme gunzip.
Voir la page de manuel pour la liste complète des variables possibles que vous pouvez mettre dans ce fichier de configuration, dont il y en a beaucoup . Si les options de ligne de commande nécessaires pour gunzip sont différentes de celles de unzip, vous devrez peut-être modifier la source atool (perl) elle-même.
la source
Voici une petite fonction shell qui prend en charge plusieurs types d'archives.
J'ai trouvé la version originale de cette fonction quelque part en ligne et l' ai légèrement modifiée pour extraire les
ar
archives et lestar
archives compressées xz .la source
bash
etzsh
, mais cela devrait aussi fonctionner avecsh
.Le système de fichiers AVFS présente une vue du système de fichiers où chaque fichier d'archive (par exemple
/path/to/foo.zip
) est accessible en tant que répertoire (~/.avfs/path/to/foo/zip#
pour cet exemple). AVFS fournit un accès en lecture seule aux formats de fichiers d'archives les plus courants.Avfs utilise des assistants externes qui peuvent être facilement configurés en éditant des fichiers dans
/usr
(malheureusement, à partir d'avfs 1.0, il n'y a aucun moyen d'utiliser des fichiers dans/usr/local
ou dans votre répertoire personnel, vous devez éditer des fichiers/usr
ou recompiler)./usr/share/avfs/extfs/ext-uzip
est le script pour gérer les.zip
fichiers, changez-le si vous ne voulez pas l'utiliser/usr/bin/unzip
. Vous pourrez peut-être vous en sortir en utilisant 7z à la place: essayez de modifier/usr/share/avfs/extfs/extfs.ini
et de changer la ligneext-uzip
enu7z .zip
.la source