The tar utility is one of the utilities that you can use to create a backup on a Linux system. It includes many options that one can use to specify the task to achieve.
One thing to understand is that you can extract tar files to a different or specific directory, not necessarily the current working directory.
The general syntax of tar utility for extracting files:
# tar -xf file_name.tar -C /target/directory # tar -xf file_name.tar.gz --directory /target/directory
Note: In the above first syntax, the -C option is used to specify a different directory other than the current working directory.
Let us now look at some examples below.
Example 1: Extracting tar Files to a Specific Directory
In the first example, I will extract the files in articles.tar to a directory /tmp/my_article. Always make sure that the directory into which you want to extract tar file exists.
Let me start by creating the /tmp/my_article directory using the command below:
# mkdir /tmp/my_article
You can include the -p option to the above command so that the command does not complain.
To extract the files in articles.tar to /tmp/my_article, I will run the command below:
# tar -xvf articles.tar -C /tmp/my_article/
Example 2: Extract .tar.gz or .tgz Files to Different Directory
First make sure that you create the specific directory that you want to extract into by using:
# mkdir -p /tmp/tgz
Example 3: Extract tar.bz2, .tar.bz, .tbz or .tbz2 Files to Different Directory
Again repeating that you must create a separate directory before unpacking files:
# mkdir -p /tmp/tar.bz2
Example 4: Extract Only Specific or Selected Files from Tar Archive
The tar utility also allows you to define the files that you want to only extract from a .tar file. In the next example, I will extract specific files out of a tar file to a specific directory as follows:
# mkdir /backup/tar_extracts # tar -xvf etc.tar etc/issue etc/fuse.conf etc/mysql/ -C /backup/tar_extracts/