When working with open-source software, it is common to encounter files in the .tar.gz format on a routine basis. These files serve as a means of distributing open-source packages and are accompanied by .zip formats for convenience and compatibility.
Tar archives, often colloquially known as “tarballs,” constitute collections of files consolidated into a single archive. These archives primarily serve purposes related to backup and software distribution. On Linux and Unix systems, the “tar” command is employed to create these archives, boasting compatibility with a wide array of compression programs, including gzip, bzip2, lzip, lzma, lzop, xz, and compress. The nomenclature “Tar Archive” originates from its original function of creating archives for storing files on magnetic tape.
Gzip stands out as the preeminent compression algorithm for tar files. It is customary to denote a tar archive compressed with gzip by appending either “.tar.gz” or “.tgz” to the file name.
In summary, a file bearing the “.tar.gz” extension signifies a “.tar” archive subjected to gzip compression.
Beyond the creation of new archives, the “tar” command offers multifaceted functionalities, including the extraction of tar archives, the display of file lists contained within an archive, and the addition of supplementary files to an existing archive.
This article serves as a comprehensive guide on the extraction of tar.gz and tgz archives.
Extracting a tar.gz File
The “tar” command is inherently available on most Linux distributions and macOS systems.
To extract a tar.gz file, invoke the “–extract” (“-x”) option followed by the archive file name:
tar -xf archive.tar.gz
The “tar” command will automatically discern the compression method in use and proceed with the extraction. This command can be applied universally to extract tar archives compressed with diverse algorithms, such as “.tar.bz2.”
To enhance visibility during the extraction process, the “-v” option can be employed, prompting the “tar” command to display the names of extracted files on the terminal:
tar -xvf archive.tar.gz
By default, “tar” extracts the archive contents within the current working directory. However, it is possible to designate a specific directory for unpacking using the “–directory” (“-C”) option. For instance, to extract the contents of the archive into the “/home/linuxize/files” directory, the following command may be employed:
tar -xf archive.tar.gz -C /home/linuxize/files
For desktop users who prefer a graphical interface, file managers can be employed for extraction. Simply right-click on the desired tar.gz file and select the “Extract” option.
On Windows systems, the utility of choice for extracting tar.gz files is typically 7zip.
Extracting Specific Files from a tar.gz File
To extract particular files from a tar.gz archive, list the file names separated by spaces immediately after specifying the archive name:
tar -xf archive.tar.gz file1 file2
When extracting files, it is imperative to provide their precise names and paths as they appear in the archive, as revealed by the “tar –list” (“tar -t”) command.
The process of extracting directories from an archive mirrors that of individual files:
tar -xf archive.tar.gz dir1 dir2
Attempting to extract a non-existent file will result in an error message, as illustrated below:
tar -xf archive.tar.gz README
tar: README: Not found in archive
tar: Exiting with a failure status due to previous errors
For extracting files based on a wildcard pattern, the “–wildcards” option can be employed. By enclosing the pattern in quotes, the shell’s interpretation is preemptively avoided. For example, to extract files with names ending in “.js” (JavaScript files), the following command is utilized:
tar -xf archive.tar.gz --wildcards '*.js'
Extracting a tar.gz File from stdin
When extracting a compressed tar.gz file from stdin, typically through a pipe, it is essential to specify the decompression option. The “-z” option instructs “tar” to process archives through gzip. The example below demonstrates this procedure by downloading Blender sources via the “wget” command and piping its output to the “tar” command:
wget -c https://download.blender.org/source/blender-4.0.2.tar.xz -O - | sudo tar -xz
Neglecting to specify the decompression option will prompt “tar” to recommend the correct option:
tar: Archive is compressed. Use -z option
tar: Error is not recoverable: exiting now
Listing the Contents of a tar.gz File
To retrieve a listing of the contents within a tar.gz file, execute the “tar” command alongside the “–list” (“-t”) option:
tar -tf archive.tar.gz
The output will assume a format resembling the following:
file1
file2
file3
The inclusion of the “–verbose” (“-v”) option extends the output to encompass additional details, including file permissions, ownership, size, and timestamp:
tar -tvf archive.tar.gz
-rw-r--r-- linuxize/users 0 2023-12-15 01:19 file1
-rw-r--r-- linuxize/users 0 2023-12-15 01:19 file2
-rw-r--r-- linuxize/users 0 2023-12-15 01:19 file3
Conclusion
A tar.gz file represents a tar archive compressed using the Gzip algorithm. Extraction of a tar.gz file is facilitated through the “tar -xf” command, followed by the archive’s name.
Should you have any queries or require further assistance, please do not hesitate to leave a comment below.