Unpack tar gz files. It’s an important topic to learn because when we talk about Linux, it’s impossible not to notice the number of application packages compresses using tar gz files. This type of file is broad used in the open-source world, like the zip format.
What are tar and gz?
For generally acknowledged tar means “Tape Archive.”
GZip (Gzip is a traditional data compression application formerly written by Jean-loup Gailly for the GNU project). Every modern browser can manage a gzip encoded response.
So, the tar gz file format is a mixture of TAR packaging accompanied by a GNU zip (gzip) compression. Unix-based operation system generally uses this format. This type of file can include various files, and most frequently, they appear as package files, applications, or installers. On the MS-DOS platform, tgz is applied as short of tar.gz because MS-DOS can’t understand a file type including two dots and more than three characters following the dot. They add both tar and gz files. They need to be decompressed and finally expanded by a TAR utility.
Also, the tar command supports a wide variety of compression applications such as gzip, xz, lzip, bzip2, lzma. Tar was initially being developed for building archives to put files on magnetic tape, which is why it has its signature, “Tape ARchive.”
Which command do we use to extract .tar.gz files?
To unpack tar gz on Linux, you can use the tar command, which also is used to pack.
Unpack tar gz files are straightforward because all Unix-based systems already have included the tar and gzip utilities by default.
Unpack tar gz
To unpack tar gz, we will use the tar utility:
For example, to unpack my application package:
tar –xvzf bitslovers-app.tar.gz
Let’s see the list of option that we used above:
x – tells tar to unpack the files from the archive file
v – for verbose mode or to print out the files list from the unpacking process.
z – tells tar to decompress the files – without this option, you will have a folder full of compressed files.
f – means tar the filename you want it to work on.
How to specify the output directory?
Also, you can specify in advance which folder you would like to send the files to. So later, you don’t need to move the files for the desired folder manually:
tar –xvzf bitslovers-app.tar.gz –C /home/bitslovers/my-app
In addition, maybe you would like to check which files you have inside the tar gz files, so to achieve that goal, you can simply run the following command:
tar –tzf bitslovers-app.tar.gz
Until now, we have seen how to unpack tar gz files. Let’s see how easy it’s easy to create a tar gz file.
For example, let’s suppose to do the reverse order from our previous example above. In other words, we would like to compress our application for backup:
tar –cvzf bitslovers-app.tar.gz /home/bitslovers/my-app
Note that we need specify first all parameters from the tar command followed by the name of the tar file. So, the latest parameter is the files that you would like to archive. Also, if you would like to add more files at the same tar files, you just need to add more files or folder path at the end of that command, like the example below:
tar –cvzf bitslovers-app.tar.gz /home/bitslovers/my-app /etc/httpd/conf
Also, you can do using another approach to add various files to the tar file:
tar -cvf bitslovers-app.tar /etc/httpd/conf
The command above adds /etc/httpd/conf within a single file, called bitslovers-app.tar. And, the options -cvf works as observes:
- c – builds a new archive
- v – for verbose mode, listing the files
- f – defines the name of the file
Also, to unpack the files from a tar file, enter:
tar –xvf bitslovers-app.tar
The command above unpacks the tar file and shows a list of all files from our bitslovers-app.tar file, and the option responsible for executing the unpack is -x. In other words, -x is for extract, and -c is for compress (create the tar file).
Extract Specific Files from a tar.gz
Sometimes, when we have a big tar gz file, we would like to extract only a specific file to avoid pulling all files and then getting the file that we want. Let’s see how we can do it:
tar -xf bitslovers-app.tar.gz filename1 filename2
Note: To unpack a specific file(s) from a tar gz file, add a space-separated list of file names to be unpacked after the tar gz file name. Also, don’t forget to give their exact names, including the path, as shown when you use the option –list (-t).
In addition, you also can unpack files from a tar.gz file using a wildcard pattern by applying the –wildcards option and using quotes to prevent the shell from interpreting it.
For instance, to unpack tar gz files whose names end in .conf, you can follow this example:
tar -xf bitslovers-app.tar.gz --wildcards '*.conf'
Also, we can use xargs to unpack tar gz files on Linux, which could help us perform complex scenarios where we need to create Shell Script to automate tasks.
Before you go, I hope that you have learned how to unpack tar gz and, how to create it. And if you are willing to learn more, I would like to encourage you to read the man tar, to discover more options to use with the tar command.