Je continue à oublier toutes les commandes d'extraction correspondantes pour chaque format de compression.
Je pensais donc à écrire un script qui mapperait simplement les extensions de fichier à la commande d’extrait appropriée. Mais je suppose que quelque chose comme ça existe déjà, je ne peux tout simplement pas le trouver.
Je serais heureux avec quelque chose comme file-roller, mais file-roller est un outil graphique.
Quelques suggestions:
unp (disponible à partir du centre de logiciel) est un petit module Perl qui décompresse une grande variété d’archives dans le dossier en cours. Utilisez unp -s
pour les formats d'archive qu'il prend en charge
Par défaut, il décompresse les archives dans le dossier en cours.
fichier-rouleau lui-même peut être exécuté à partir de la ligne de commande. Utilisez file-roller -h <archive name>
pour décompresser l'archive.
De ici , à mettre dans votre .bashrc:
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.Zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
Ce qui n’a pas encore été mentionné est le couteau suisse des utilitaires de ligne de commande: atool
; il est disponible dans les dépôts: cliquez atool ou exécutez Sudo apt-get install atool
.
atool
est en réalité un script comprenant diverses fonctions telles que aunpack, apack, als, acat, adiff et arepack. L'utilisation la plus courante du programme consiste probablement à extraire des archives à l'aide de la commande aunpack. Il existe plusieurs options intéressantes et utiles, mais la méthode de base pour extraire la plupart des archives consiste simplement à exécuter, par exemple,
aunpack myarchive.tar
La prise en charge de tar, 7z, Zip, jar, rar, ar, lha et de nombreux autres formats d'archive et de leurs variantes est documentée en saisissant man atool
dans le terminal ou en consultant la page de manuel Ubuntu en ligne .
Donc, ce qui est utile, c'est que si vous avez une archive tar, Zip et gz dans le même dossier, tout ce que vous avez à faire pour les extraire toutes est de les exécuter.
aunpack -e *
et toutes les archives prises en charge seront décompactées avec leur structure de dossiers conservée. Si le nom du dossier résultant existe déjà, il ne sera pas écrasé, mais un nom unique, comme unpack-5645, lui sera attribué.
Ou si vous voulez choisir un seul type d'archive et les décompresser, utilisez plutôt
aunpack -e *.Zip
Si vous avez besoin de fichiers décompressés directement dans un répertoire particulier, avec uniquement la structure de répertoires de sous-dossiers conservée (le cas échéant), entrez, par exemple,
aunpack -e Scripts11.Zip -X /home/mike/Videos
Si un fichier portant le même nom existe déjà, une action vous demandant de renommer ou d'écraser vous sera demandée, à moins que vous n'ayez spécifié l'option force (-f
) dans la commande.
Comme le note la page de manuel, les premiers extraits de aunpack
fichiers dans un répertoire (temporaire) unique, puis déplace son contenu si possible. Cela évite également que les fichiers locaux ne soient écrasés par erreur.
Avec les autres outils, d’autres actions sont possibles, comme indiqué par le page de manuel :
Il existe de nombreuses autres options utiles pour tous les utilitaires, mais celle qui sera le plus souvent utilisée sera probablement ununpack, car cela facilite l'extraction de multiples archives différentes. Il est bon de pouvoir n’exécuter qu’une seule commande et d’extraire plusieurs formats d’archives différents sans avoir à utiliser les différentes commandes pour tar, Zip, etc.
Pour un article très récent décrivant comment intégrer les fonctions atool aux actions personnalisées de votre gestionnaire de fichiers, tel que Thunar, voir ce magazine en ligne .
Il existe un outil appelé dtrx
- effectuez l'extraction appropriée.
Installez-le à partir des référentiels Ubuntu et exécutez dtrx somefile.someext
. L'outil interrogera de manière interactive l'utilisateur sur les archives imbriquées (fichiers Zip ou Zip).
dtrx est une version sophistiquée de extrait de frabjous .
Quels types de formats devez-vous gérer? Une solution consiste à écrire un script Shell, qui vérifie les extensions de son argument. Ou bien, si vous ne traitez que des variantes de .tar. *, Il suffit de faire tar -xf
pour traiter la plupart de ces tâches automatiquement. (Je ne me souviens donc que de cela et de unzip
, ce qui suffit pour tout ce que je rencontre habituellement.)