Commands.page Logo

How to Compare Tar Archive Contents in Ubuntu Linux

This guide provides a direct method for comparing the contents of two tar archive files within the Ubuntu operating system. Because the standard tar utility does not include a built-in flag for comparing two separate archives, you must combine tar with the diff command to identify differences in file lists, permissions, and timestamps without extracting the data.

To compare two archives, open your terminal and use the following command structure involving process substitution. This command lists the contents of both archives and pipes the output directly into the diff utility for comparison.

diff <(tar -tvf archive1.tar) <(tar -tvf archive2.tar)

Replace archive1.tar and archive2.tar with the actual paths to your files. The tar -tvf flags list the verbose contents of the archive, including permissions, ownership, size, and modification dates. The diff command then analyzes these two lists and outputs any lines that differ between them. If the command returns no output, the archives contain identical file listings and metadata.

If you need to compare the actual file data rather than just the archive listings, you must extract both archives to temporary directories and use diff recursively.

mkdir temp1 temp2
tar -xf archive1.tar -C temp1
tar -xf archive2.tar -C temp2
diff -r temp1 temp2

After running the recursive diff, you can remove the temporary directories to clean up your system. This method ensures that even if the archive metadata differs, you can verify if the underlying files are identical.