Extract Tar Files on Linux: 30 Useful Commands

Extracting tar files is a fundamental task in Linux and Unix-based systems. The tar utility is designed to consolidate multiple files into a single archive file. This archive file can be compressed with various algorithms such as gzip, bzip2, and xz. After compression, the archive file can be extracted using the untar command. This article provides a comprehensive overview of 30 useful untar commands with examples. These commands will help users become more proficient in extracting tar files.

Table of Contents

Basic Untar Command

Before diving into the various untar commands, let’s start with the basic untar command you can use to extract a tar file.

Command

tar -xf filename.tar

Explanation

The above command will extract the contents of a tar file named filename.tar to the current directory. The -x option tells tar to extract the archive’s contents, and the -f option specifies the archive’s filename.

Extracting Compressed Tar Files

Tar files are often compressed to reduce their size. Here are some useful untar commands to extract compressed tar files.

1. Extracting a gzip compressed tar file

Command

tar -xzf filename.tar.gz

Explanation

This command will extract the contents of a gzip compressed tar file named filename.tar.gz to the current directory. The -z option tells tar that the file is gzip compressed.

2. Extracting a bzip2 compressed tar file

Command

tar -xjf filename.tar.bz2

Explanation

This command will extract the contents of a bzip2 compressed tar file named filename.tar.bz2 to the current directory. The -j option tells tar that the file is bzip2 compressed.

3. Extracting an xz compressed tar file

Command

tar -xJf filename.tar.xz

Explanation

This command will extract the contents of an xz-compressed tar file named filename.tar.xz to the current directory. The -J option tells tar that the file is xz compressed.

Extracting Specific Files from a Tar Archive

Sometimes you may only need to extract specific files from a tar archive. Here are some useful untar commands to extract specific files from a tar archive.

4. Extracting a specific file from a tar archive

Command

tar -xf filename.tar path/to/file

Explanation

This command will extract a specific path/to/file from a tar archive named filename.tar to the current directory.

5. Extracting all files matching a pattern

Command

tar -xf filename.tar --wildcards '*.txt'

Explanation

This command will extract all files matching the pattern ‘*.txt’ from a tar archive named filename.tar to the current directory. The –wildcards option tells tar to use wildcards to match filenames.

Extracting Tar Archives to a Different Directory

By default, tar extracts files to the current directory. However, you can also extract files to a different directory. Here are some useful untar commands to extract tar archives to a different directory.

6. Extracting to a specific directory

Command

tar -xf filename.tar -C /path/to/directory

Explanation

This command will extract the contents of a tar archive named filename.tar to the directory /path/to/directory.

7. Extracting to a subdirectory

Command

tar -xf filename.tar -C /path/to/directory/subdirectory

Explanation

This command will extract the contents of a tar archive named filename.tar to the subdirectory /path/to/directory/subdirectory.

8. Extracting to a directory with a different name

Command

tar -xf filename.tar --transform 's/old/new/' -C /path/to/directory

Explanation

This command will extract the contents of a tar archive named filename.tar to the directory /path/to/directory but will rename any files with the string ‘old’ in their name to ‘new.’

Verifying Tar Archive Integrity

Sometimes it’s important to verify that a tar archive is valid and not corrupted. Here are some useful untar commands to verify the integrity of tar archives.

9. Verifying the contents of a tar archive

Command

tar -tf filename.tar

Explanation

This command will list the contents of a tar archive named filename.tar without extracting any files.

10. Verifying the integrity of a gzip compressed tar archive

Command

tar -tzf filename.tar.gz

Explanation

This command will verify the integrity of a gzip compressed tar archive named filename.tar.gz without extracting any files.

11. Verifying the integrity of a bzip2 compressed tar archive

Command

tar -tjf filename.tar.bz2

Explanation

This command will verify the integrity of a bzip2 compressed tar archive named filename.tar.bz2 without actually extracting any files.

12. Verifying the integrity of an xz compressed tar archive

Command

tar -tJf filename.tar.xz

Explanation

This command will verify the integrity of an xz-compressed tar archive named filename.tar.xz without actually extracting any files.

Updating Tar Archives

Sometimes you may need to add or remove files from a tar archive. Here are some useful untar commands to update tar archives.

13. Adding files to a tar archive

Command

tar -rf filename.tar file1 file2

Explanation

This command will add file1 and file2 to an existing tar archive named filename.tar.

14. Removing files from a tar archive

Command

tar -f filename.tar --delete path/to/file

Explanation

This command will remove a specific file named path/to/file from an existing tar archive named filename.tar.

15. Updating a tar archive

Command

tar -uf filename.tar file1 file2

Explanation

This command will add file1 and file2 to an existing tar archive named filename.tar but will update any files with the same name.

Working with Sparse Files

Sparse files are files that contain large sections of zeros, and Tar can handle sparse files efficiently. Here are some useful untar commands to work with sparse files.

16. Extracting a sparse file

Command

tar -xSf filename.tar

Explanation

This command will extract a sparse file named filename.tar.

17. Creating a sparse file

Command

tar -Scf filename.tar directory

Explanation

This command will create a sparse file named filename.tar from the contents of a directory.

Handling Permissions and Ownership

When extracting tar archives, preserving the file permissions and ownership is important. Here are some useful untar commands to handle permissions and ownership.

18. Extracting a tar archive with preserved permissions

Command

tar -xpzf filename.tar.gz

Explanation

This command will extract a gzip compressed tar archive named filename.tar.gz, preserving the file permissions.

19. Extracting a tar archive with preserved ownership

Command

tar -xpf filename.tar --numeric-owner

Explanation

This command will extract a tar archive named filename.tar, preserving the file ownership. The –numeric-owner option tells tar to use numeric user and group IDs.

20. Changing the ownership of extracted files

Command

tar -xpf filename.tar --owner=username --group=groupname

Explanation

This command will extract a tar archive named filename.tar and change the ownership of the extracted files to the specified username and groupname.

Extracting Multiple Tar Archives

Sometimes you may need to extract multiple tar archives at once. Here are some useful untar commands to extract multiple tar archives.

21. Extracting multiple tar archives at once

Command

cat archive1.tar archive2.tar | tar -x

Explanation

This command will extract the contents of both archive1.tar and archive2.tar.

22. Extracting multiple gzip-compressed tar archives at once

Command

cat archive1.tar.gz archive2.tar.gz | tar -xz

Explanation

This command will extract the contents of both archive1.tar.gz and archive2.tar.gz.

23. Extracting multiple bzip2 compressed tar archives at once

Command

cat archive1.tar.bz2 archive2.tar.bz2 | tar -xj

Explanation

This command will extract the contents of archive1.tar.bz2 and archive2.tar.bz2.

Working with Large Tar Archives

Extracting large tar archives can be time-consuming and consume many system resources. Here are some useful untar commands to work with large tar archives.

24. Extracting a tar archive in a background process

Command

tar -xf filename.tar &

Explanation

This command will extract a tar archive named filename.tar in a background process, allowing you to continue using the terminal.

25. Extracting a tar archive with progress information

Command

tar -xzf filename.tar.gz --checkpoint=10000

Explanation

This command will extract a gzip compressed tar archive named filename.tar.gz, displaying progress information every 10,000 records.

26. Extracting a tar archive with a limited amount of memory

Command

tar -xzf filename.tar.gz --checkpoint=10000 --checkpoint-action=exec='pkill -STOP tar; sleep 1; pkill -CONT tar'

Explanation

This command will extract a gzip compressed tar archive named filename.tar.gz, limiting the amount of memory tar uses. If the memory limit is reached, tar will be paused for one second before continuing.

Other Useful Untar Commands

Here are some other useful untar commands that you may find helpful.

27. Extracting a tar archive and ignoring directory components

Command

tar -xf filename.tar --strip-components=1

Explanation

This command will extract a tar archive named filename.tar, ignoring the first directory component.

28. Extracting a tar archive and excluding specific files

Command

tar -xf filename.tar --exclude=path/to/file

Explanation

This command will extract a tar archive named filename.tar, excluding a specific file named path/to/file.

29. Extracting a tar archive and only showing errors

Command

tar -xvf filename.tar 2>&1 >/dev/null | grep -i 'error\|warning'

Explanation

This command will extract a tar archive named filename.tar and only display errors and warnings.

30. Extracting a tar archive and preserving timestamps

Command

tar -xpf filename.tar --atime-preserve

Explanation

This command will extract a tar archive named filename.tar, preserving the access times of the extracted files.

Conclusion

Extracting tar files is a fundamental skill for anyone working with Linux or Unix-based systems. The above commands provide a solid foundation for working with tar archives of all types and sizes. Whether extracting specific files, preserving permissions and ownership, or working with large archives, these commands will help you get the job done quickly and efficiently. With practice, you’ll become proficient at working with tar archives and easily tackle more complex tasks.

Your Mastodon Instance
Share to...