Schlüssel für seine erweiterte Verwendung ist die Environment-Variable LESSOPEN, die auf ein Skript verweisen kann, das dann als Input-Filter für less fungiert. Ein ganz einfaches Beispiel könnte so aussehen, dass die Variable auf das Skript zeigt
export LESSOPEN='|/home/jcb/lesspipe.sh %s'
und dieses Shellskript lesspipe.sh enthält dann:
#! /bin/sh case "$1" in *.tar.gz) tar -tzvf $1 2>/dev/null ;; esac
Dann kann man mit less auch den Inhalt von tar-Archiven listen:
less test.tar.gz drwxrwxr-x jcb/jcb 0 2012-12-10 09:24 ./test/ -rw-rw-r-- jcb/jcb 47 2013-01-30 10:15 ./test2.html -rw-rw-r-- jcb/jcb 47 2013-01-30 10:22 ./test.html -rw-rw-r-- jcb/jcb 197 2013-01-09 16:23 ./test.txt test.tar.gz (END)
Dem Skript kann man aber auch durchaus anspruchsvollere Aufgaben übertragen, deren Umfang hier allerdings das Format sprengen würden. Doch mit ein wenig googlen nach lesspipe im Internet findet man zum Beispiel Skripte für Syntax-Highlighting oder zur Anzeige vieler weiterer Archiv- und Binärformate. Für ISO-Images wird dann beispielsweise die Information von isoinfo ausgeben, für Bilder das Ergebnis von identify aus ImageMagick und so fort.