TAR to TAR Converter

Convert TAR files to TAR format online. Free, fast, no watermarks.

Initializing... drag & drop files here

Supports: TAR

OptionsAdvanced Options - Our defaults are optimized for the best results. We recommend you keeping the defaults unless you have a specific need.

How to Re-pack TAR to TAR Online

  1. Upload Your TAR Archive: Drag and drop your .tar file(s) into the uploader, or click "+ Add Files" to browse. Batch is supported — drop ten archives and process them in one job.
  2. Choose Single Archive or Individual Archives: "Single Archive" merges every uploaded .tar into one combined output (handy when a vendor ships you part1.tar and part2.tar). "Individual Archives" rewrites each input as its own normalized .tar so the file count stays the same.
  3. Confirm TAR as the Output Format: TAR is already selected. If you actually wanted a compressed variant, switch to tar.gz, tar.bz2, tar.xz, or zip from the format picker.
  4. Convert and Download: Click "Convert". Your re-packed .tar is generated server-side and offered for download — no sign-up, no watermark, no re-tarball-by-hand on the command line.

Why Re-pack a TAR File?

TAR is just a concatenation of file headers plus raw bytes — there is no compression, no checksum on the archive as a whole, and no central directory. That simplicity is why people still ship .tar after 45 years, but it also means a "TAR to TAR" round-trip is a real operation: you can normalize the layout, merge multiple tarballs, or rewrite to a different tar dialect. According to the GNU tar manual, GNU tar can read and write at least four dialects (v7, ustar, oldgnu/gnu, posix/pax), and they are not byte-equivalent for the same set of files.

  • Merge multi-part vendor tarballs — Linux distros, AOSP code drops, and scientific datasets are often split across several .tar files (source-1.tar, source-2.tar …). Re-packing into one archive gives you a single artifact to checksum, sign, and upload.
  • Switch dialects for compatibility — Old build systems (pdtar, BSD pax pre-2001) choke on GNU extensions like ././@LongLink and sparse-file headers. Re-packing as USTAR (POSIX 1003.1-1988) trades the >100-char filename ceiling for universal portability.
  • Drop ACLs, xattrs, and SELinux labels — POSIX.1-2001 pax headers carry these as extended records. If your archive is moving between Linux, macOS, and a FAT32 USB stick, stripping them avoids "Operation not permitted" warnings on extract.
  • Reproducible / deterministic builds — The reproducible-builds.org archives guide flags atime, ctime, owner UIDs, and entry order as the four sources of byte-drift in .tar. A re-pack with sorted entries, fixed mtime, and uid=0/gid=0 produces an archive whose SHA-256 matches across machines.
  • Repair archives created in odd directories — A tarball created with absolute paths (/home/alice/project/...) or with a leading ./ can be cleaner after re-pack into a single top-level folder.
  • Re-tarball after editing contents offline — If you extracted, patched one config file, and need to ship the result back, this tool re-packs without you needing tar on a Chromebook or restricted corporate machine.

TAR Format Dialects — What Actually Differs

Dialect Year Max filename Max file size Sparse files xattr / ACL Notes
v7 (original) 1979 100 chars 8 GB No No Last-resort compatibility only; no UID/GID names
ustar (POSIX) 1988 100 + 155 prefix = 256 8 GB No No Widely portable baseline
oldgnu ~1992 unlimited (via ././@LongLink) 8 GB Yes No Pre-2003 GNU tar default
gnu 2003+ unlimited 8 GB (binary-encoded) Yes No GNU tar default through 1.27
pax (POSIX.1-2001) 2001 unlimited unlimited No (in spec) Yes GNU tar default since 1.28

Source: GNU tar 1.35 manual, chapter 8. The "8 GB" ceiling on pre-pax dialects comes from the 12-octet ASCII octal size field (077777777777 = 8 GiB − 1).

Reproducible-Build Re-pack Cheatsheet

Step What we do Equivalent tar flag
Sort entries Alphabetical by name, locale-independent --sort=name
Zero ownership Set every entry to UID 0 / GID 0 --owner=0 --group=0 --numeric-owner
Fix timestamps Single mtime (often SOURCE_DATE_EPOCH) --mtime=@$SOURCE_DATE_EPOCH
Strip pax cruft Remove atime, ctime from extended headers --pax-option=delete=atime,delete=ctime
Pick a stable format Use ustar or gnu rather than default pax --format=ustar

These five steps are the canonical advice from reproducible-builds.org and require GNU tar 1.28 or later.

Frequently Asked Questions

Why does a TAR to TAR conversion change the file size at all?

Because tar pads each file entry to a 512-byte block boundary, and the archive itself is padded to 10240 bytes (20 blocks) by default. When the dialect changes — say USTAR to pax — extended headers add a few hundred bytes per long-named entry. A re-pack with sorted entries can also defragment the block padding. Expect the new .tar to be within ±1% of the original, not byte-identical.

Will a re-packed USTAR archive lose my long filenames?

Yes, if any path exceeds 256 characters (100-char name + 155-char prefix). USTAR truncates or errors on those. If you have long paths and need portability, choose pax instead of USTAR — pax stores the full name in an extended header that all modern tar implementations (GNU tar 1.13+, BSD tar/libarchive, Python tarfile, 7-Zip 21.04+) read transparently.

Yes. Tar's typeflag byte (2 for symlink, 1 for hard link, 5 for directory) is preserved through the re-pack, and the 8-octet mode field carries Unix permissions (rwxrwxrwx + setuid/setgid/sticky). What is not preserved by default is extended attributes (xattr, ACLs, SELinux labels) when you down-convert from pax to ustar — those live only in pax extended headers.

Can I merge multiple TAR files into one without extracting them first?

Yes — that's exactly what "Single Archive" mode does. Tar is a streamable format with no central index, so merging is a concatenation pass over each input's entries into a single output stream. The result is a normal .tar with one directory tree per input archive at the top level. If your inputs have colliding paths, the later entry wins on extract (standard tar behaviour).

Why not just rename the .tar to .tar — what does conversion actually do?

A rename does nothing useful; a conversion rewrites the archive. The tool reads every entry header, optionally re-orders them, optionally drops or rewrites metadata (atime, ctime, owner names), and writes a fresh archive in the dialect you pick. Think of it as tar -x | tar -c with deterministic flags, not mv old.tar new.tar.

How do I make the output bit-for-bit reproducible across machines?

You need three things from your source: identical file contents, identical entry order, and identical mtimes. The re-pack handles entry order and metadata normalization. For mtime, the Reproducible Builds project recommends setting SOURCE_DATE_EPOCH to your last-commit timestamp and using it for every entry. Two re-packs of the same input with the same settings should produce the same SHA-256.

Is there a file-size limit?

Server-backed conversions on xconvert handle tar archives up to several GB; very large archives (>2 GB) will queue rather than process instantly. For comparison, FreeConvert caps free users at 1 GB per file. If you need to extract a tarball instead of re-packing one, use Extract TAR to pull individual files instead of re-packing the whole archive.

What's the difference between this and re-tarring on the command line?

Functionally none — this is tar -xf input.tar && tar --format=ustar --sort=name -cf output.tar . packaged into a web UI. The advantage is that you don't need a Unix shell, root, or even tar installed locally. The disadvantage is the upload/download round-trip, so for >5 GB archives the CLI is faster. For a one-off, the web tool wins on ergonomics.

Rate TAR to TAR Converter Tool

★★★★✭
Rating: 4.8 / 5 - 43 reviews