Annuler l'extraction d'une archive tar.gz bz2 zip ou 7z


Archive
Il m'arrive souvent d'extraire des archives tar.gz ou autres, un peu partout, sur mes systèmes d'exploitation. Seulement voilà, parfois, l'archive ne contient pas de dossier et les fichiers sont alors extraits dans le dossier courant. Cela fait désordre, surtout si l'archive contenait beaucoup d'éléments.

Voici donc quelques commandes qui permettent d'annuler une extraction.

Pour une archive tar.gz :

for file in `tar tzf archive.tar.gz`; do rm -Rf $file; done

Pour une archive bz2 :

for file in `tar tjf archive.bz2`; do rm -Rf $file; done

Pour une archive zip :

for file in `unzip -l archive.zip | awk '{print $NF}' | tail -n +4 | head -n -2`; do rm -Rf $file; done

Pour une archive 7z :

for file in `7z t archive.7z | grep Testing | awk '{print $NF}'`; do rm -Rf $file; done


12 Commentaires pour "Annuler l'extraction d'une archive tar.gz bz2 zip ou 7z"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Pratique, je n'y avais jamais pensé. Merci pour l'astuce.

    RépondreRépondre
    Guillaume , le 30 novembre 2010 à 08:36
  •  

    Ça c'est de l'astuce ;)

    RépondreRépondre
    JackDaniels93 , le 30 novembre 2010 à 09:32
  •  

    a ouéééé ! Merci !

    RépondreRépondre
    Muy_Bien , le 30 novembre 2010 à 10:26
  •  

    Ah ! J'le faisais déjà ... à la main (extract dans un dossier à part, puis suppression des fichiers 1/1 ..)

    RépondreRépondre
    Chibani , le 30 novembre 2010 à 13:08
  •  

    Pourquoi faire une boucle ? Il suffit de faire un : tar -tzf archive.tar.gz | xargs rm -rf

    RépondreRépondre
    zapple , le 30 novembre 2010 à 16:15
  •  

    @zapple : parce que j'aime bien les boucles. Plus sérieusement, c'est la première méthode qui m'est venu à l'esprit. Après toutes les méthodes sont bonnes.

    RépondreRépondre
    pti-seb , le 30 novembre 2010 à 18:06
  •  

    ATTENTION DANGER avec cette méthode !

    En effet, si l'archive contient "/" vous allez lancer un rm -rf ... sur "/" !

    Une méthode plus sûre :
    tar tf archive.tar | sort -r | xargs rm -f 2>/dev/null
    tar tf archive.tar | sort -r | xargs rmdir 2>/dev/null

    A décliner selon le type d'archive...

    Source :
    http://www.linuxquestions.org/questions/linux-newbie-8/undoing-a-tar-extract-267152/#post3656061

    RépondreRépondre
    PA , le 1 décembre 2010 à 16:40
  •  

    Lorsqu'on fait un tar de plusieurs répertoires, je ne vois pas l'intéret en plus d'inclure le / dans le tar. Faire un tar revient à "rassembler" tous les répertoires et les sous répertoires dans un meme répertoire. S'il fallait faire un tar de /, cela va inclure tous les répertoires/sous répertoires de /, donc aucun intéret.

    Pour résumer un / n'est jamais contenu dans un tar.

    RépondreRépondre
    zapple , le 2 décembre 2010 à 16:48
  •  

    @zapple : le fait que tu n'en voies pas l'intérêt est-il une raison suffisante pour avoir confiance ?

    Selon la doc : http://www.gnu.org/software/tar/manual/html_node/absolute.html

    Il est vrai que par défaut, le "leading slash" est ignoré... mais bon, je préfère une commande sûre...

    RépondreRépondre
    PA , le 4 décembre 2010 à 16:32
  •  

    @PA : le leading slash est-il ignoré aussi pour unzip et 7z ? J'ai pas trouvé d'infos la dessus.

    RépondreRépondre
    pti-seb , le 5 décembre 2010 à 16:39
  •  

    @pti-seb : unzip ignore aussi le leader slash il me semble. Je connais peu 7z en revanche. Il m'apparait cependant que la diversité des outils de (dé)compression est une bonne raison de préférer la solution "prudente" ;)

    RépondreRépondre
    PA , le 6 décembre 2010 à 23:33
  •  

    Et pour ceux qui ne veulent pas faire tout ça. Même si c'est heu, moins spéctaculaire.

    1. Créer un nouveau dossier (Ctrl+N dans Nautilus en mode graphique bien sûr)
    2. Gentiment déplacer son archive dans le dossier.
    3. Extraire l'archive dans ce nouveau dossier.
    4. Trier si nécessaire.
    5. Tout est clair.

    n.b : Permet d'éviter des manipulatons dangeureuse pour votre système en mode console. Surtout pour si c'est pour impressionner vos potes.

    RépondreRépondre
    marc , le 23 décembre 2010 à 12:56
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum