How do I Compress a Whole Linux or UNIX Directory?

by on February 11, 2006 · 38 comments

Q. How can I compress a whole directory under Linux / UNIX using a shell prompt?

A. It is very easy to compress a Whole Linux/UNIX directory. It is useful to backup files, email all files, or even to send software you have created to friends. Technically, it is called as a compressed archive. GNU tar command is best for this work. It can be use on remote Linux or UNIX server. It does two things for you:
=> Create the archive
=> Compress the archive

You need to use tar command as follows (syntax of tar command):
tar -zcvf archive-name.tar.gz directory-name
Where,

  • -z: Compress archive using gzip program
  • -c: Create archive
  • -v: Verbose i.e display progress while creating archive
  • -f: Archive File name

For example, you have directory called /home/jerry/prog and you would like to compress this directory then you can type tar command as follows:
$ tar -zcvf prog-1-jan-2005.tar.gz /home/jerry/prog

Above command will create an archive file called prog-1-jan-2005.tar.gz in current directory. If you wish to restore your archive then you need to use following command (it will extract all files in current directory):
$ tar -zxvf prog-1-jan-2005.tar.gz

Where,

  • -x: Extract files

If you wish to extract files in particular directory, for example in /tmp then you need to use following command:
$ tar -zxvf prog-1-jan-2005.tar.gz -C /tmp
$ cd /tmp
$ ls -

See also:

Featured articles:

Facebook it - Tweet it - Print it -
Alpesh March 17, 2006 at 11:43 am

Excellent !
Step by step tutorial, easy to understand.

Thanks
Alpesh

Reply

BinhNT February 27, 2007 at 8:14 am

Very excellent!
That is best guideline
Thank you!!!

Reply

Matthew Cupples March 15, 2007 at 11:20 pm

yeah, it worked alright. :p it tarballed the directory and every file inside the directory into separate files

problem is, there are about 1k+ files

how do i have them all unzipped?

Reply

Paulo A. Costa February 18, 2012 at 12:53 am

try: gunzip -rv /directoryname

Reply

rokcy March 16, 2007 at 8:25 am

use tar -zxvf file to untar them:
tar -xvvf file.tar

Reply

omprakash March 19, 2007 at 7:53 am

Can we compress and uncompress a file even without having the write permission to the source file or the zipped by merely having the execute permission.

Reply

Leion August 16, 2007 at 2:39 am

The system I am running this command does not support tar -z. Hence I tried to do a tar followed by a gzip. Then there was a lack of space error. Is there a way to do this for me?

Reply

Mark Henry April 2, 2008 at 1:39 pm

This is cool but I need to compress directory which has many folders and files within each other. Without knowing each folder name, can I zip the directory using your example?

Reply

Eduardo Romero April 2, 2008 at 5:35 pm

To zip the files try:

zip prog.zip /home/jerry/prog/*

Reply

vivek April 2, 2008 at 7:22 pm

Mark,

The -r option recurse into directories,

zip -r file-name.zip .
zip -r file-name.zip /path/to/directory

Reply

val April 7, 2008 at 1:01 pm

just what I needed!! thanks for putting this up..

Reply

Elambarithi April 22, 2008 at 1:58 pm

Superb..!
easy to understand..

Reply

Jeff December 14, 2008 at 6:21 am

thanks for your guideline.
how to list the file under the tar.gz?
I have try tar -tf
but fail and come out a message “This does not look like a tar archive”

Reply

Sebastian May 31, 2009 at 9:17 pm

THANKS! :)

Reply

Chaitanya July 28, 2009 at 7:04 am

Hey Man its really gr8
Thanks for the help

Reply

Jen August 6, 2009 at 9:09 pm

This is an excellent tutorial! Simple and easy to understand. Cool!

Reply

Hippy March 25, 2010 at 12:18 am

Very usefull been a long time since I done this had to refresh and this was perfect thanks

Reply

ihraz April 6, 2010 at 7:09 am

thanks..

Reply

Shounka April 15, 2010 at 6:55 am

Thanks, its really very helpful!

Reply

Tuhin Paul June 27, 2010 at 3:23 am

Thank you very much.
Truly very helpful.

Reply

eta August 15, 2010 at 1:29 am

Thanks for compress in linux tutorial.

Reply

Praveen October 13, 2010 at 10:09 am

Hiii

Thanks for ur excellent help it did a lot for meeeeeeeeeeeeeee

Reply

vishal sapkal October 20, 2010 at 3:15 pm

very good
can u give how to compress detail directory

Reply

sekhar November 24, 2010 at 5:29 am

HI Excellent Tutorial .

i Have one question, Is it possible to gzip all the files in a directory and remove all the files once we gziped is finished.
Hope u got my point ?

Reply

Tsrlinkan January 25, 2011 at 10:06 pm

Wowwwww really simple and efficient !!!!!!!!!!!!! Thanks for the useful thing

Reply

avi February 9, 2011 at 12:12 pm

thanks

Reply

Adeel February 12, 2011 at 12:25 pm

Thanks, easy to understand and excellent guide.

Reply

HiTux March 21, 2011 at 5:16 pm

Thanks, this is good, but usaully when i compress an archive i want also crypt it using a password. Could you help me to do it??????????????? :-)

Reply

Nicola Hamwi April 9, 2011 at 12:20 pm

Excellent tutorial !!!

Reply

Saeasy May 17, 2011 at 10:58 pm

Hi, I have to compress multiple dir within a dir and i used tar -czf option.. it created tgz file, but it doesnt remove the original directories.. Is there any way or option in zip/compress/archive to remove the original files after compression.. thanks

Reply

Junaid July 7, 2011 at 6:46 am

Nice article
Thanks

Reply

Daniel Clem August 16, 2011 at 9:02 am

THANK YOU, this saved my first Minecrafts world. I was playing around with compiz and trying to make my windows slightly transparent like you see people have in videos. But forgot to turn the setting down from 100% or 0% or whatever before setting the window type to “any”. so then every single window dissappeared and I couldn’t see even an outline or shadow. AHHHGGGG!!!!! Luckily the only thing I actually cared about on that system was the minecraft world I’d been playing on. So I was able to open a terminal, type these commands in blind, then do a move command to get the new “saves.tar.gz” into my dropbox folder.

This post just turned a annoyed and ticked off night, into a “Hallelujah, THANK YOU GOD” kind of night lol

Thanks to Vivek Gite also though, and to all the other Linux/Unix/PC in general Pro’s out there that put these tid-bits of info on the net. They save absent minded people like me all the time!!! :-P

God Bless ya’s,
Daniel

Reply

Mike September 29, 2011 at 11:02 am

Thanks for helping out – very straightforward.
Well done.
Mike

Reply

matthew September 30, 2011 at 5:20 am

Nice clear and concise tutorial !! Well done

Regards,
Matthew

Reply

Pratik January 17, 2012 at 8:57 am

Thanks a ton :)

Reply

Paulo A. Costa February 18, 2012 at 12:52 am

@Matthew Cupples:

try: gunzip -rv /directoryname

Reply

Matthias February 21, 2012 at 9:53 am

Thanks, man!

Reply

Ahmed Adel February 29, 2012 at 12:18 am

Very useful
Thank you

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 2 + 3 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.