Convert TBZ to ZIP Online (Bzip2 Tarball to PKWARE Archive)

Moving from one continuous bzip2-compressed stream to a container that treats each file as its own separately compressed, independently accessible entry.

  1. Add a file Choose or drop it here
  2. Pick the format Change it whenever needed
  3. Download the result After conversion completes

Leaving a Single Compressed Stream for a Per-File Container

A TBZ archive holds every bundled file inside one continuous bzip2-compressed stream: tar concatenates the files with their headers first, and bzip2 then compresses that entire stream in independent blocks of up to 900 KB, with no awareness of where one original file ends and the next begins within a given block. A ZIP archive works in the opposite direction structurally — each file gets its own separate local header and its own independently compressed entry, all indexed by a central directory listing every entry's name, size, and byte offset at the end of the archive.

Converting a TBZ to ZIP means decompressing that solid bzip2 stream fully, unpacking the tar structure back into distinct files, and then compressing each one separately using ZIP's default DEFLATE method (or, less commonly, storing them uncompressed). The result is a fundamentally different internal layout, not just a different file extension wrapped around the same data.

This is a meaningfully bigger structural jump than converting TBZ to a plain TAR or to another compressed tarball like TAR.GZ, where the tar layer itself stays untouched throughout. Here, the tar layer is fully dissolved during the conversion — there's no tar structure left in the resulting ZIP at all, since ZIP's own central directory takes over the job of listing every file's name and location that tar's headers previously handled.


What Bzip2's Block Compression Loses Once Files Get Split Into ZIP Entries

Bzip2's Burrows-Wheeler transform benefits from having many similar files sitting next to each other in the same block, since it can find repeated patterns across that whole 900 KB span regardless of which original file each byte came from. Once those same files are split apart into ZIP's independent per-entry compression, DEFLATE only sees one file's data at a time within its own 32 KB sliding window, losing any cross-file repetition bzip2's block-wide view could exploit. This is a real, structural reason a folder of many small, similar files (like source code from the same project) can end up noticeably larger as a ZIP than it was as a TBZ, even before accounting for the algorithm difference between DEFLATE and bzip2 itself.

The trade for that lost cross-file compression is genuine per-file random access — a ZIP reader can jump directly to any single entry's byte offset via the central directory without touching the rest of the archive, something completely impossible with a TBZ's solid stream, which has to be decompressed sequentially from the beginning to reach any file inside it.


What Rebuilding as ZIP Gains and What TBZ's Design Gave Up First

  • Gain — near-universal desktop support: a ZIP opens with a double-click on Windows and macOS by default; a TBZ needs at least a command-line tool or third-party software on Windows.
  • Gain — genuine per-file random access: ZIP's central directory lets a tool extract one file without decompressing the whole archive, unlike TBZ's continuous stream.
  • Gain — the option to update a single entry without a full rebuild: many ZIP tools can replace or remove one entry in place; a TBZ generally has to be fully decompressed and recompressed to change even one file.
  • Lose — bzip2's cross-file, block-wide compression advantage: splitting files into separate ZIP entries removes DEFLATE's ability to find patterns that span multiple original files.
  • Lose — Unix permission bits and symlinks by default: tar headers store this natively; ZIP only carries it through the optional Info-ZIP Unix extra field, which not every tool writes or honors on extraction.
  • Lose — long-filename handling built the same way on both ends: GNU tar's PAX extended headers support filenames with no meaningful length limit, while very old ZIP implementations historically imposed tighter path-length assumptions, though current tools on both sides generally handle long names correctly.

How Reliably Unix Metadata Survives This Specific Rebuild

Plain ustar-format tar headers only reserve 100 bytes for a filename, a real limitation from tar's original design; GNU tar and the POSIX PAX format both extended this with additional header blocks that remove any meaningful length restriction, and current GNU tar defaults to using these extensions automatically when a name won't fit in the classic 100-byte field. ZIP archives built by any current mainstream tool handle long filenames without issue as well, so this specific gap has largely closed in practice, even though it was a genuine historical distinction between the two formats.

The more persistent gap is Unix permissions and symbolic links. A tar header stores a file's permission bits, numeric owner and group IDs, and whether an entry is a symlink directly and natively. ZIP's core specification has no equivalent field; the Info-ZIP Unix extra field can carry this same information, but it's optional, and whether it survives a TBZ-to-ZIP conversion depends entirely on whether the specific tool doing the rebuild chooses to write it, and whether whatever eventually extracts the ZIP chooses to read it back.

Command-line tools built specifically for cross-platform use, like Info-ZIP's own zip and unzip utilities, tend to write and read this extra field consistently. GUI tools with a broader, more general-purpose audience are the ones more likely to skip it silently, since preserving Unix-specific metadata isn't a priority for software whose main users are on Windows or macOS working with files that never had meaningful permission bits to begin with.


Real Problems Reported Converting Unix Tarballs Into ZIP Files

A common complaint on developer forums involves a Linux user converting a TBZ full of scripts and executables to ZIP, sending it to a Windows colleague, and finding that every file lost its executable permission bit on extraction — a direct consequence of the Info-ZIP Unix extra field not surviving the round trip, not a bug in either tool individually, and the documented fix is re-applying execute permissions manually after extraction or using a ZIP tool specifically confirmed to preserve that extra field on both ends.

A second real issue involves symbolic links inside the original tar archive extracting from the rebuilt ZIP as full duplicate copies of their target files rather than as links, again tracing back to the same Unix extra field gap — this can quietly bloat the extracted result's total size well beyond what the original tar structure actually used on disk, since what was one small link becomes a complete second copy of a potentially large target file.

A third pattern shows up around size expectations: someone converting a TBZ of source code to ZIP and being surprised the ZIP is noticeably larger, despite ZIP compression generally being considered reasonably effective — the explanation, once traced, is almost always bzip2's cross-file block compression finding shared patterns across many small similar files that DEFLATE's per-entry compression in ZIP simply can't see once those same files are split into separate entries.


TBZ's Solid Bzip2 Stream Against ZIP's Per-Entry Structure

Feature TBZ ZIP
Compression scope Whole stream, 900 KB blocks Per-file, independent entries
Random single-file access No, sequential decompression required Yes, via the central directory
Unix permissions/symlinks Native, in tar headers Optional Info-ZIP Unix extra field only
Compression on many similar small files Often better, cross-file patterns found Often worse, per-file only
Native Windows/macOS support Needs a tool on Windows; native on macOS Native on both
Update a single entry in place Generally requires full rebuild Often possible without a full rebuild

Common Questions About Turning a TBZ Archive Into a ZIP

Why did my files lose their executable permissions after converting to ZIP?
ZIP's core specification has no dedicated field for Unix permission bits. They only carry over through the optional Info-ZIP Unix extra field, which not every ZIP-creating or ZIP-reading tool writes or honors.

Why is my ZIP bigger than the original TBZ, even though ZIP compresses too?
Bzip2 compresses the whole tar stream together, finding repeated patterns across multiple files within its 900 KB blocks. ZIP compresses each file separately, missing those same cross-file patterns, which often produces a larger result on folders of many similar small files.

What happened to the symbolic links from my original tar archive?
Without the Info-ZIP Unix extra field surviving the conversion, a symlink often extracts from the ZIP as a full duplicate copy of its target file rather than as an actual link, which can noticeably increase the extracted size.

Can I get one file out of a TBZ without unpacking the whole archive?
No, not with a TBZ's solid compressed stream — it has to be decompressed sequentially from the start. This is one of the real advantages a rebuilt ZIP gains, since its central directory allows genuine per-file access.

Does the conversion change the actual file contents?
No. Only the container structure and compression method change. The files extracted from either archive come out byte-for-byte identical, aside from whatever Unix metadata ZIP's format doesn't natively carry.