Menos pode determinar se recebeu um diretório. Defina a variável de ambiente LESSOPEN
como ~/bin/LESSPIPE
e efetue ~/bin/LESSPIPE
um script como o seguinte:
#!/bin/sh
if [ -d "$1" ]; then
exec /bin/ls -la "$1"
elif [ -f "$1" ]; then
case "$1" in
*.tar|ztar) exec tar tvvf "$1" 2>/dev/null;;
*.tar.[dg]z|*.tar.z|*.tgz) exec gzip -dc "$1" | tar tvvf - 2>/dev/null;;
*.tar.bz2) exec bzip2 -d <"$1" 2>/dev/null | exec tar tvvf - 2>/dev/null;;
*.tar.Z|*.taz) exec uncompress -c "$1" | exec tar tvvf - 2>/dev/null;;
*.zip) exec unzip -l "$1" 2>/dev/null;;
*.lha) exec lha -v "$1" 2>/dev/null;;
*.7z) exec 7z l "$1" 2>/dev/null;;
*.[rs]pm) exec rpm -qilp "$1";;
*.z|*.[dg]z) exec gzip -dc "$1" 2>/dev/null;;
*.bz2) exec bzip2 -dc "$1";;
*.xz) exec xz -dc "$1";;
*.Z) exec uncompress -c "$1" 2>/dev/null;;
esac
fi
Você receberá uma listagem de diretórios e arquivos.
Você pode usar lesskey
em vez da variável de ambiente para definir o pré-processador. Veja a documentação para detalhes.