Forum Astuces.divers [Terminal] Less permet de lister le contenu d'une archive

Posté par  .
Étiquettes : aucune
0
2
août
2004
En ligne de commande, une unique commande permet de lister le contenu de toutes archives (gz, tgz, tar.bz2, tar.gz, zip, rpm, deb(?) ...) c'est less !

Par exemple, le résultat correspond à un tar -tzvvf dans le cas d'un tar.gz

Techniquement parlant, c'est grâce à l'utilisation du préprocesseur définit par LESSOPEN. Il varie donc suivant les systèmes mais doit faire sensiblement la même chose...
  • # Çamarchepas.com

    Posté par  (site web personnel) . Évalué à 1.

    Aussi bien sur une debian sid que sur une woody à jour, cette astuce ne fonctionne pas, less affichant le contenu binaire de l'archive...
    Comment fait-on? Configuration? Version plus récente?

    Pour info:
    - less 382 sur debian sid
    - less 374 sur debian woody
    • [^] # Re: Çamarchepas.com

      Posté par  (site web personnel) . Évalué à 4.

      Cela fonctionne sur ma RedHat 7.3 (less 358)

      Pour cela un préprocesseur est définit par LESSOPEN ('echo $LESSOPEN'). Voici son contenu :
      |/usr/bin/lesspipe.sh %s

      Le shell script lesspipe.sh contient une liste de commande à appliquer selon l'extension du fichier visualiser. Voici un extrait du script pour vous aider à comprendre :
      #!/bin/sh -

      lesspipe() {
      case "$1" in
      *.tar) tar tvvf "$1" ;;
      *.zip) zipinfo -- "$1" ;;
      esac
      }

      lesspipe "$1" 2> /dev/null

      Si tu veux plus d'info encore je peux t'envoyer le fichier sous /etc/profile.d/ qui configure l'environnement de ton shell. Et je peux t'envoyer le script lesspipe.sh complet.

      Jean-Christophe
      • [^] # Re: Çamarchepas.com

        Posté par  (site web personnel) . Évalué à 2.

        Ca fonctionne aussi sur ma gentoo, et j'avais jamais remarqué que less savait faire tout ca :) merci pour cette astuce, je ferais moins de pipe maintenant :)
    • [^] # Re: Çamarchepas.com

      Posté par  . Évalué à 3.

      Il n'y a pas de lesspipe.sh dans Debian. Par contre lesspipe.sh a sa propre page sur freshmeat:
      http://freshmeat.net/projects/lesspipe/(...)
      • [^] # Re: Çamarchepas.com

        Posté par  . Évalué à 4.

        Pour profiter de toute les possibilitées, il faut installer quelques «backend» (mp3info, antiword, etc...)
        ./configure, puis make install et configurer la variable d'environement dans le fichier de configuration de son shell. Tout ça est expliqué dans le fichier INSTALL.

        Ensuite less se transforme en viewer universel et pas que les archives !
        html, jpeg (EXIF) ogg, mp3, .doc, .deb, etc...
      • [^] # Re: Çamarchepas.com

        Posté par  . Évalué à 2.

        lesspipe est fournit dans le paquet less de debian, mais ton shell n'est pas configuré par défaut pour utiliser lesspipe.

        un simple export LESSOPEN="| /usr/bin/lesspipe %s" (sous bash) permet d'utiliser tout ca...
        • [^] # Re: Çamarchepas.com

          Posté par  (site web personnel) . Évalué à 2.

          En effet, ca marche super... j'ai mit ça dans mon .bashrc et maintenant ça se fait tout seul... Vraiment merci pour cette astuce...
        • [^] # Re: Çamarchepas.com

          Posté par  . Évalué à 2.

          Sinon, d'après /usr/share/doc/less/LESSOPEN , l'ajout de "eval $(lesspipe)" ou "eval $(lessfile)" devrait aussi marcher.
  • # sxw :(

    Posté par  (site web personnel) . Évalué à 1.

    Finalement, une fois correctement renseigné LESSOPEN ça marche bien...

    C'est même super pratique, je crois que je ne vais plus le lâcher... Seul bémol: les fichiers sxw d'OpenOffice sont en réalité des fichiers zippés: un less dessus affiche donc le contenu de l'archive zip, et non le texte lui-même...

    Dommage, mais compréhensible.

    ps: sous Mdk10.0 d'ailleurs aussi il faut renseigner LESSOPEN...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.