Tar Extract a Single File(s) From a Large Tarball

by on December 5, 2008 · 21 comments· LAST UPDATED December 6, 2008

in , ,

Q. I've couple of large tarballs such as www.tar and images.tar. Is it possible to extract a single file or a list of files from a large tarball such as images.tar instead of extracting the entire tarball? How do I extract specific files under Linux / UNIX operating systems?

A. GNU tar can be used to extract a single or more files from a tarball. To extract specific archive members, give their exact member names as arguments, as printed by -t option.

Extracting Specific Files

Extract a file called etc/default/sysstat from config.tar.gz tarball:
$ tar -ztvf config.tar.gz
$ tar -zxvf config.tar.gz etc/default/sysstat
$ tar -xvf {tarball.tar} {path/to/file}

Some people prefers following syntax:
tar --extract --file={tarball.tar} {file}
Extract a directory called css from cbz.tar:
$ tar --extract --file=cbz.tar css

Wildcard based extracting

You can also extract those files that match a specific globbing pattern (wildcards). For example, to extract from cbz.tar all files that begin with pic, no matter their directory prefix, you could type:
$ tar -xf cbz.tar --wildcards --no-anchored 'pic*'
To extract all php files, enter:
$ tar -xf cbz.tar --wildcards --no-anchored '*.php'

Where,

  • -x: instructs tar to extract files.
  • -f: specifies filename / tarball name.
  • -v: Verbose (show progress while extracting files).
  • -j : filter archive through bzip2, use to decompress .bz2 files.
  • -z: filter archive through gzip, use to decompress .gz files.
  • --wildcards: instructs tar to treat command line arguments as globbing patterns.
  • --no-anchored: informs it that the patterns apply to member names after any / delimiter.

Further readings:

  • GNU tar man page
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 21 comments… read them below or add one }

1 sathiya December 6, 2008 at 11:42 am

excellent article..

Reply

2 ruben December 8, 2008 at 8:13 am

I suggest getting coffee especially, Extracting files from large tar files.
Instead of using tar, it’s far better to use zip as methode. the reason for this is that zip knows where the files are.

We have some 4 Gb tar files and extracting a couple of single files with tar can take up to 25 minutes.

My 2 cents,

Ruben

Reply

3 Anonymous May 12, 2010 at 4:10 am

good advice, I am waiting here for a file to be extracted from a 7GB tar file which is stored on a different computer. Its going to be a long night I think.

Reply

4 another ruben November 4, 2014 at 8:37 pm

I got ahold of a dataset that contains extracts of different research papers. After extracting them I went to verify them I saw one file was empty. Checked the rest of the files and for some reason this is the only one.

Thinking there might have been a problem, I decided to reextract that file again.

It’s a 65GB tar.gz file.

It finished this morning. The file was indeed empty and it wasn’t an error. Days wasted for that…

Reply

5 elinus liga December 15, 2008 at 11:09 am

Excellent post. It’s really useful. Clear, simple and just as what we need.

Reply

6 zaffar December 22, 2008 at 12:12 pm

excellent article for new bie

Reply

7 kpb February 24, 2009 at 1:33 am

Great article!
Keep it coming!

Reply

8 Jatin April 22, 2009 at 11:40 am

Great help !!! thanks ..

Reply

9 subba May 15, 2009 at 4:43 am

Good one! Thanks a lot!

Reply

10 Asad Kahwaja June 23, 2009 at 7:08 pm

My problem is that i have downloaded a movie.
But my mvie is corrupt in da end
now i have downloaded 8th part of the movie.
but when i extract it
i gives me error
” YOU MUST HAVE THE PREVIOUS FILES TO EXTRACT “…
is dere any way i can resole this n can only extract on file.

Reply

11 Maurzanc August 20, 2010 at 11:31 pm

I think you are talking about a multiple RAR archive downloaded from a torrent client. if it is, you have search the answer in other forum.

Маурсанк

Reply

12 Kevin H July 28, 2009 at 8:48 pm

is there a way to use regexp matching rather than wildcard matching with tar?

Reply

13 Prafull December 20, 2010 at 9:54 am

On Solaris 10 if you have a tar ball called myTarfile.tar and you want to extract only one directory called my_dir from that tar file then below command workes

tar -xvf myTarfile.tar -C my_dir

Reply

14 Dmitry July 1, 2011 at 4:19 pm

For better speed and low cpu usage use pbzip2, very good work with big archives on hosting systems.

Reply

15 Yan.Geema July 11, 2011 at 3:11 pm

Very useful.

Thanks!

Reply

16 reetesh January 11, 2012 at 3:15 am

thanks…good to know

Reply

17 Balaji January 27, 2012 at 6:50 am

Thank you very much. Timely help.

Reply

18 bababab February 28, 2012 at 3:02 pm

there is need to type command in proper way with proper

symbols and spaces tar -xvf {tarfile} {file} or {{path}/{file}}.

Example: tar -xvf file.tar myfold/file

same with tar.gz types just instead of -xvf , -xvzf should be

typed. or if with -C option then:

Example : tar -xvf file.tar -C /newfold myfold/file

Reply

19 shakeel March 13, 2012 at 6:05 pm

i have a file in format gz type any bady can help me plz help me opening this file

Reply

20 dexter March 20, 2012 at 3:52 pm

Thanks for the post!

I have a 68gb tar.gz backup of our website, and I need to extract a single file from it..

$ tar -zxvf config.tar.gz home/path/to/folder/*

Is the above line correct?

Reply

21 Yann Laviolette April 25, 2013 at 3:14 pm

Thanks a lot! It was exactly was I waiting for…

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: