LESSOPEN(1)                                         LESSOPEN(1)





NAME
       lessfile, lesspipe - "input preprocessor" for  less.

SYNOPSIS
       lessfile, lesspipe

DESCRIPTION
       This  manual  page  documents  briefly the lessfile, and
       lesspipe commands.  This manual page was written for the
       Debian  GNU/Linux  distribution  because  the input pre-
       processor scripts are provided by Debian  GNU/Linux  and
       are not part of the original program.

       lessfile  and  lesspipe are programs that can be used to
       modify the way the contents of a file are  displayed  in
       less.   What  this  means is that less can automatically
       open up tar files, uncompress gzipped  files,  and  even
       display something reasonable for graphics files.

       lesspipe  will toss the contents/info on STDOUT and less
       will read them as they come across.  This means that you
       do  not  have  to wait for the decoding to finish before
       less shows you the file.  This also means that you  will
       get  a  'byte N' instead of an N% as your file position.
       You can seek to the end and back to get the N% but  that
       means you have to wait for the pipe to finish.

       lessfile  will  toss  the  contents/info on a file which
       less will then read.  After you are done, lessfile  will
       then  delete  the file.  This means that the process has
       to finish before you see it, but you get  nice  percent-
       ages (N%) up front.

USAGE
       Just put one of the following two commands in your login
       script (e.g.  ~/.bash_profile):

         eval "$(lessfile)"

       or

         eval "$(lesspipe)"

FILE TYPE RECOGNITION
       File types are recognized by their extensions.  This  is
       a list of currently supported extensions (grouped by the
       programs that handle them):

         *.arj
         *.tar.bz2
         *.bz
         *.bz2
         *.deb, *.udeb
         *.doc
         *.gif, *.jpeg, *.jpg,  *.pcd,  *.png,  *.tga,  *.tiff,
       *.tif
         *.iso, *.raw, *.bin
         *.lha, *.lzh
         *.pdf
         *.rar, *.r[0-9][0-9]
         *.rpm
         *.tar.gz, *.tgz, *.tar.z, *.tar.dz
         *.gz, *.z, *.dz
         *.tar
         *.jar, *.war, *.xpi, *.zip
         *.zoo

USER DEFINED FILTERS
       It  is  possible  to  extend  and  overwrite the default
       lesspipe and lessfile input processor if you  have  spe-
       cialized requirements. Create an executable program with
       the name .lessfilter and put it into  your  home  direc-
       tory. This can be a shell script or a binary program.


       It  is  important  that this program returns the correct
       exit code: return 0 if your filter  handles  the  input,
       return 1 if the standard lesspipe/lessfile filter should
       handle the input.


       Here is an example script:

         #!/bin/sh

         case "$1" in
             *.extension)
                 extension-handler "$1"
                 ;;
             *)
                 # We don't handle this format.
                 exit 1
         esac

         # No further processing by lesspipe necessary
         exit 0


FILES
       ~/.lessfilter
              Executable file that can do user defined process-
              ing.  See  section  USER DEFINED FILTERS for more
              information.

BUGS
       When trying to open compressed 0 byte files,  less  dis-
       plays  the  actual  binary  file contents. This is not a
       bug.  less is designed  to  do  that  (see  manual  page
       less(1),  section  INPUT  PREPROCESSOR).   This  is  the
       answer of Mark Nudelman <markn@greenwoodsoftware.com>:

              "I recognized when I designed it that a  lesspipe
              filter  cannot output an empty file and have less
              display nothing in that case; it's a side  effect
              of using the "no output" case to mean "the filter
              has nothing to do".  It could have been  designed
              to have some other mechanism to indicate "nothing
              to do", but "no output" seemed the  simplest  and
              most intuitive for lesspipe writers."


       Sometimes,  less  does not display the contents file you
       want to view but output that is produced by  your  login
       scripts  (~/.bashrc  or  ~/.bash_profile).  This happens
       because less uses your current shell to run the lesspipe
       filter.  Bash  first looks for the variable $BASH_ENV in
       the environment expands its value and  uses the expanded
       value as the name of a file to read and execute. If this
       file produces any output less will display this.  A  way
       to  solve  this problem is to put the following lines on
       the top of your login script that produces output:

         if [ -z "$PS1" ]; then
             exit
         fi

       This tests whether the prompt variable $PS1 is  set  and
       if  it  isn't  (which  is  the  case for non-interactive
       shells) it will exit the script.

SEE ALSO
       less(1)

AUTHOR
       This  manual  page  was  written   by   Thomas   Schoepf
       <schoepf@debian.org>,  for  the  Debian GNU/Linux system
       (but may be used by others). Most of the text was copied
       from   a   description   written   by   Darren   Stalder
       <torin@daft.com>.



                                                    LESSOPEN(1)
