Man Linux: Main Page and Category List

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 preprocessor 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 percentages (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 specialized requirements. Create
       an executable program with the name .lessfilter and put  it  into  your
       home directory. 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 processing. See section
              USER DEFINED FILTERS for more information.

BUGS

       When trying to open compressed 0 byte files, less displays  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)