Open & View 10 Different File Types with Linux Less Command – The Ultimate Power of Less

by SathiyaMoorthy on April 13, 2009

Less is More - The Ultimate Power of Linux Less Command
Photo courtesy of gfpeck

Earlier we discussed 15 practical examples of find command and grep command. Now, it is time to turn our attention to something less.
 
In this article, let us review how Linux less command can be used to open and view the following 10 different file types:

  1. PDF File – *.pdf
  2. Word Document- *.doc
  3. Image Files – *.gif, *.jpg, *.jpeg, *.png
  4. TAR Files – *.tar
  5. TAR Files with gzip – *.tar.gz
  6. Zip Files – *.zip
  7. Gzip and Gzip2 Files – *.gz and *.bz2
  8. ISO Files
  9. Debian Files – *.deb
  10. RPM Files – *.rpm

Set the LESSOPEN environment variable to lesspipe

First, make sure the following is set in the environment variable.

$ set | grep less
LESSOPEN='|/usr/bin/lesspipe.sh %s'


Please note that you can also do the following to setup the lesspipe.

$ eval "($lesspipe)"

$ cat ~/.bashrc
eval "($lesspipe)"
  • lesspipe, lessfile are the input preprocessor for less, which lets it to open all types of files.
  • lesspipe allows you to open while the process of conversion is going on using pipe.
  • lessfile completes the conversion first, and then displays the content. This writes the converted thing to a temporary file then displays it.
  • You can also write your own input preprocessor, and use it.

File Type 1: How to open a pdf file?

It shows all the text in the pdf file clearly, but ignores the images. The output may have some special characters here and there. But it is definitely readable.

$ less Linux-101-Hacks.pdf
^LLinux 101 Hacks
www.thegeekstuff.com
o
o
o
Chapter 1: Powerful CD Command Hacks
cd is one of the most frequently used commands during a UNIX session.
The cd command hacks mentioned in this chapter will boost your productivity

File Type 2: How to open a word document file?

$ less pdb.doc
The Python Debugger Pdb
=======================

To use the debugger in its simplest form:

        >>> import pdb
        >>> pdb.run

The debugger's prompt is Pdb.  This will stop in the first
function call in

File Type 3: How to open a jpg, jpeg, png file?

While opening a image file (jpeg, jpg and png), less command shows the following information:

  • Name of the file
  • Type of file
  • Number of pixels — width & height
  • Size of the file
$ less testfile.jpeg
testfile.jpeg JPEG 2304x1728 2304x1728+0+0 DirectClass 8-bit 1.57222mb 0.550u 0:02

Note: Similar kind of information will be displayed for other image file types.

File Type 4: How to open an archived file (i.e *.tar) ?

While opening archive file it shows “ls -l” of the files available in the archive, so you can see the size of file, permissions of it and owner, group too.

$ less autocorrect.tar
-rwxrwxrwx anthony/anthony 84149 2009-02-02 03:20 autocorrect.dat
-rwxrwxrwx anthony/anthony 443 2009-02-02 03:21 generator.rb
-rwxrwxrwx anthony/anthony 181712 2009-02-02 03:21 autocorrect.vim

File Type 5: How to open an archived, compressed file in gzip format (i.e *.tar.gz format) ?

For the archived and compressed file also less command shows the output in “ls -l” format.

$ less XML-Parser-2.36.tar.gz
drwxr-xr-x matt/matt 0 2007-11-20 19:58 XML-Parser-2.36/
-rw-r--r-- matt/matt 25252 2007-11-20 19:52 XML-Parser-2.36/Changes
drwxr-xr-x matt/matt 0 2007-11-20 19:58 XML-Parser-2.36/Expat/
-rw-r--r-- matt/matt 3184 2003-07-27 16:37 XML-Parser-2.36/Expat/encoding.h
-rw-r--r-- matt/matt 33917 2007-11-20 19:54 XML-Parser-2.36/Expat/Expat.pm
-rw-r--r-- matt/matt 45555 2007-11-17 01:54 XML-Parser-2.36/Expat/Expat.xs

File Type 6: How to open an archived and compressed file in zip format (i.e *.zip format)?

It shows the details of archived and compressed file in the following format.

Archive: Archive name
Length Method Size Ratio Date Time CRC-32 Name
-------- ------ ------- ----- ---- ---- ------ ----
$ less bash-support.zip
Archive: bash-support.zip
Length Method Size Ratio Date Time CRC-32 Name
-------- ------ ------- ----- ---- ---- ------ ----
0 Stored 0 0% 01-30-09 19:56 00000000 ftplugin/
13488 Defl:N 2167 84% 01-30-09 19:53 b1bc6f3c ftplugin/sh.vim
5567 Defl:N 1880 66% 01-30-09 02:16 0017a875 README.bashsupport
0 Stored 0 0% 01-30-09 19:56 00000000 doc/
41013 Defl:N 11574 72% 01-30-09 19:50 0cc22a14 doc/bashsupport.txt
0 Stored 0 0% 01-30-09 19:56 00000000 bash-support/
0 Stored 0 0% 01-30-09 19:56 00000000 bash-support/templates/
513 Defl:N 187 64% 11-16-07 23:06 580ee37c bash-support/templates/bash-file-header
246 Defl:N 80 68% 01-31-07 21:51 54706588 bash-support/templates/bash-function-description
175 Defl:N 23 87% 01-31-07 21:51 22db9b2d bash-support/templates/bash-frame
0 Stored 0 0% 01-30-09 19:56 00000000 bash-support/rc/
6545 Defl:N 1807 72% 06-17-07 14:01 e7a27099 bash-support/rc/customization.vimrc
2144 Defl:N 526 76% 01-31-07 21:51 f3a5e8dd bash-support/rc/customization.gvimrc

File Type 7: How to open a compressed file gzip & bzip2.

Shows the content of the compressed file. If the file is only compressed and not archived then it shows the content of the file. However it does not shows the content of a zip file format, it shows the only the information in the format explained in File Type 7.

File Type 8: How to open an ISO file?

While opening an iso file, it shows information about the iso file and then shows the content of the file.

$ less knoppix_5.1.1.iso

CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: KNOPPIX
Volume set id:
Publisher id: KNOPPER.NET
Data preparer id: www.knopper.net
Application id: KNOPPIX LIVE LINUX CD
Copyright File id:
Abstract File id:
Bibliographic File id:
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 356532
El Torito VD version 1 found, boot catalog is in sector 763
Joliet with UCS level 3 found
Rock Ridge signatures version 1 found
Eltorito validation header:
Hid 1
Arch 0 (x86)
ID 'KNOPPER.NET'
Key 55 AA
Eltorito defaultboot header:
Bootid 88 (bootable)
Boot media 0 (No Emulation Boot)
Load segment 0
Sys type 0
Nsect 4
Bootoff 312 786

/KNOPPIX
/autorun.bat
/autorun.inf
/autorun.pif
/boot
/cdrom.ico
/index.html
/KNOPPIX/KNOPPIX
/KNOPPIX/KNOPPIX-FAQ-EN.txt

File Type 9: How to open a deb file?

When you open a Debian file, it shows the information about that package and also the “ls -l” of the files available in that package as shown below.

$ less lshw_02.08.01-1_i386.deb

lshw_02.08.01-1_i386.deb:
new debian package, version 2.0.
size 295134 bytes: control archive= 730 bytes.
678 bytes, 16 lines control
246 bytes, 4 lines md5sums
Package: lshw
Version: 02.08.01-1
Section: utils
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.6-6), libgcc1 (>= 1:4.1.0), libstdc++6 (>= 4.1.0), lshw-common
Installed-Size: 716
Maintainer: Ghe Rivero
Description: information about hardware configuration
A small tool to provide detailed information on the hardware
configuration of the machine. It can report exact memory
configuration, firmware version, mainboard configuration, CPU version
and speed, cache configuration, bus speed, etc. on DMI-capable x86
systems, on some PowerPC machines (PowerMac G4 is known to work) and AMD64.
.
Information can be output in plain text, HTML or XML.

*** Contents:
drwxr-xr-x root/root 0 2006-08-10 04:15 ./
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/bin/
-rwxr-xr-x root/root 665052 2006-08-10 04:15 ./usr/bin/lshw
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/man/
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/man/man1/
-rw-r--r-- root/root 1874 2006-08-10 04:15 ./usr/share/man/man1/lshw.1.gz
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/lshw/
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/doc/
drwxr-xr-x root/root 0 2006-08-10 04:15 ./usr/share/doc/lshw/
-rw-r--r-- root/root 999 2006-08-10 04:13 ./usr/share/doc/lshw/copyright
-rw-r--r-- root/root 1386 2006-08-10 04:13 ./usr/share/doc/lshw/changelog.Debian.gz

File Type 10: How to open a rpm file?

less command can show the details of the rpm package, and its contents.

$ less openssl-devel-0.9.7a-43.16.i386.rpm

openssl-devel-0.9.7a-43.16.i386.rpm:
Name : openssl-devel Relocations: (not relocatable)
Version : 0.9.7a Vendor: Scientific Linux , http://www.scientificlinux.org
Release : 43.16 Build Date: Thu May 3 12:18:00 2007
Install Date: (not installed) Build Host: lxcert-i386.cern.ch
Group : Development/Libraries Source RPM: openssl-0.9.7a-43.16.src.rpm
Size : 3845246 License: BSDish
Signature : DSA/SHA1, Wed May 9 15:03:20 2007, Key ID 5e03fde51d1e034b
Packager : Jaroslaw Polok
URL : http://www.openssl.org/
Summary : Files for development of applications which will use OpenSSL.
Description :
OpenSSL is a toolkit for supporting cryptography. The openssl-devel
package contains static libraries and include files needed to develop
applications which support various cryptographic algorithms and
protocols.

*** Contents:
/usr/include/openssl
/usr/include/openssl/aes.h
/usr/include/openssl/asn1.h
/usr/include/openssl/asn1_mac.h
/usr/include/openssl/asn1t.h
/usr/include/openssl/bio.h
/usr/include/openssl/blowfish.h
/usr/include/openssl/bn.h
/usr/include/openssl/buffer.h
/usr/include/openssl/cast.h
/usr/include/openssl/comp.h
/usr/include/openssl/conf.h
/usr/include/openssl/conf_api.h


This article was written by SathiyaMoorthy, author of 15 Practical Linux Find Command Examples article. The Geek Stuff welcomes your tips and guest articles


Linux Sysadmin Course Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 13 comments… read them below or add one }

1 Binny V A April 13, 2009 at 1:24 pm

I did not know this – less is indeed powerful. By the way lessing a PDF don’t work for me(Fedora 8)

2 Frank Daley April 13, 2009 at 11:18 pm

Tried to setup on Fedora 10, but couldn’t get working.

printenv shows:
LESSOPEN=|/usr/bin/lesspipe.sh %s

Tried to run less on PDFs, DOCs and RPMs but none of them worked.

Any suggestions?

3 m April 16, 2009 at 1:16 pm

i’m a rss subscriber. Am fairly new to linux, your post are quite valuable for me. thx, keep it coming (more freequent)

4 Samuel Huckins April 20, 2009 at 3:59 pm

This is awesome. I use less to look through plaintext files all the time, but now it’s a much more useful tool!

Thanks!

5 Mit April 21, 2009 at 1:46 pm

As Binny & Frank quoted it doesn’t work on pdf/doc extensions :(

6 Jeroen May 4, 2009 at 7:41 am

lesspipe.sh isn’t available in every Linux distro.
The latest version can be downloaded here:
http://linux.softpedia.com/get/Text-Editing-Processing/Filters/lesspipe-sh-11349.shtml
or here:
http://sourceforge.net/projects/lesspipe/

7 Ramesh Natarajan May 8, 2009 at 4:48 pm

@Jeroen,
Thanks a lot for giving links to the lesspipe project.
 

@Binny V A, Frank Daley, Mit ,
Have you validated whether lesspipe.sh is located in the direction specified by the LESSOPEN environment variable? If you don’t have lesspipe, get it from the sourceforge.net project page given by Jeroen above.

 
@Samuel Huckins, m
I’m glad that you found this article helpful.

8 Rick Stanley April 26, 2010 at 10:35 am

On Debian, ‘lesspipe.sh’ is actually ‘lesspipe’. Check your system before attempting to use this command. Many shell script commands don’t use the ‘.sh’ extension.

9 K.Santhosh May 12, 2011 at 2:43 am

Hi,

Nice article. I was using the “evince” command to view pdf files

# evince file.pdf

10 riten January 7, 2013 at 5:10 am

pls send me how to create log file(tape wirrten is normal file, normal file format only not tar file format)

11 Sherman January 23, 2013 at 11:51 pm

Good information. Lucky me I recently found your website by accident (stumbleupon).

I’ve saved as a favorite for later!

12 mansi February 22, 2013 at 2:10 am

how to access txt file????????????/

13 riten February 22, 2013 at 11:03 pm

Multiple files write in tape how to create log file

Leave a Comment

Previous post:

Next post: