Bzip2 mini-HOWTO: Using bzip2 with less

Next Previous Contents

## 5. Using bzip2 with less

To uncompress bzip2'd files on the fly, i.e. to be able to use "less" on them without first bunzip2'ing them, you can make a lesspipe.sh (man less) like this:

    #!/bin/sh
    # This is a preprocessor for 'less'.  It is used when this environment
    # variable is set:   LESSOPEN="|lesspipe.sh %s"

      case "$1" in
      *.tar) tar tvvf $1 2>/dev/null ;; # View contents of various tar'd files
      *.tgz) tar tzvvf $1 2>/dev/null ;;
    # This one work for the unmodified version of tar:
      *.tar.bz2) bzip2 -cd $1 $1 2>/dev/null | tar tvvf - ;;
    #This one works with the patched version of tar:
    # *.tar.bz2) tyvvf $1 2>/dev/null ;;
      *.tar.gz) tar tzvvf $1 2>/dev/null ;;
      *.tar.Z) tar tzvvf $1 2>/dev/null ;;
      *.tar.z) tar tzvvf $1 2>/dev/null ;;
      *.bz2) bzip2 -dc $1  2>/dev/null ;; # View compressed files correctly
      *.Z) gzip -dc $1  2>/dev/null ;;
      *.z) gzip -dc $1  2>/dev/null ;;
      *.gz) gzip -dc $1  2>/dev/null ;;
      *.zip) unzip -l $1 2>/dev/null ;;
      *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` ; # groff src
        FILE=`echo $FILE | cut -d ' ' -f 2`
        if [ "$FILE" = "troff" ]; then
          groff -s -p -t -e -Tascii -mandoc $1
        fi ;;
      *) cat $1 2>/dev/null ;;
    #  *) FILE=`file -L $1` ; # Check to see if binary, if so -- view with 'strings'
    #    FILE1=`echo $FILE | cut -d ' ' -f 2`
    #    FILE2=`echo $FILE | cut -d ' ' -f 3`
    #    if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
    #         -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
    #      strings $1
    #    fi ;;
      esac

Next Previous Contents