Commands.page Logo

Command to Compare Compressed Archives in Ubuntu

This article outlines the specific methods and commands used to identify differences between two compressed archive files within the Ubuntu operating system. It provides a quick overview of the primary utilities available for comparing compressed data without requiring full manual extraction, ensuring users can efficiently verify backup integrity or package changes.

To show the differential between two compressed files, the primary command is zdiff. This utility works similarly to the standard diff command but operates directly on compressed files such as .gz or .bz2. The basic syntax is zdiff file1.tar.gz file2.tar.gz. This command decompresses the files temporarily in memory and compares their contents line by line, displaying the output in the terminal.

For archive files like .tar.gz where the internal file structure matters more than the binary compression stream, using diff with process substitution is more accurate. This method compares the file lists within the archives rather than the compressed blobs. Run the following command:

diff <(tar -tzf archive1.tar.gz) <(tar -tzf archive2.tar.gz)

This lists the differences in the file names and directories contained within each archive. If you need to compare the actual content of the files inside the archives, you must extract them to temporary directories and run a recursive diff. Use diff -r on the extracted folders to see detailed content changes. Always ensure both archives are created with similar settings, as different compression levels or timestamps can cause zdiff to report false positives on binary levels.