The Fast Way to Read Compressed Files on Linux

Linux has a multitude of handy specialized commands and fast ways to do things. Juliet Kemp shows us how to read compressed files without unpacking them first.
Posted February 2, 2009

Juliet Kemp

Juliet Kemp

less, the better-featured version of more, which among other things allows you to move backward through its output, is great for paging through text files. But it won't automatically deal with compressed text files. This can be a nuisance, particularly when many of the files in /usr/share/doc are gzipped.

A straightforward alternative is zless, which will deal seamlessly with gzip, compress, or pack files, allowing you to page through them without having to unzip them. It also handles uncompressed files, and (contrary to the manpage) it appears to deal OK with input piped from stdin (e.g., ls | zless).

zless can't, however, handle files that have been tarred as well as zipped. Here's an alternative command line that will allow you to page through file.tar.gz without unpacking it beforehand and thus without leaving unzipped files lying around:

tar --to-stdout -zxf file.tar.gz | less
That's great, but it's a bit of a mouthful (or keyboardful) to remember. Try this instead (bash syntax):
export LESSOPEN="|tar --to-stdout -zxf %s"
Now try just typing less file.tar.gz. Magic!

In fact, this will deal with both uncompressed files and piped input as well, so you can set this variable in your .bashrc. However, it won't work on plain .gz files – for those, you should still use zless.

One last note: If you regularly want to look at tar archives that aren't also zipped (e.g., file.tar), you can set export LESSOPEN="|tar --to-stdout -xf %s" to work the same trick for these files.

This article was first published on ServerWatch.com.

Tags: content, IT

0 Comments (click to add your comment)
Comment and Contribute


(Maximum characters: 1200). You have characters left.



IT Management Daily
Don't miss an article. Subscribe to our newsletter below.

By submitting your information, you agree that datamation.com may send you Datamation offers via email, phone and text message, as well as email offers about other products and services that Datamation believes may be of interest to you. Datamation will process your information in accordance with the Quinstreet Privacy Policy.