simon
simon

Reputation: 47

tar.xz - how to check uncompressed files size without decompress whole archive

I have a problem with checking uncompressed size from archive tar.xz without extract whole archive. I know that for tar.gz I can use gzip or zcat but for tar.xz it dosnt work.

Any sugestion how to do this ?

Upvotes: 3

Views: 2941

Answers (3)

nturner
nturner

Reputation: 156

Building on the answer from Lucas, you can use the --robot flag to xz to script this cleanly:

uncomp_size=$(xz --robot --list "${local_file}" | grep ^totals | cut -f5)

Upvotes: 1

xz -l file.xz will give you the compressed/uncompressed sizes of the archive in a human-readable way (KiB MiB suffixes) without actually decompressing (no CPU or disk load). It won't list the files inside the tar archive, though.

xz -lv file.xz is verbose, and you can filter it to get the exact sizes in bytes.

Upvotes: 5

Bob Goddard
Bob Goddard

Reputation: 977

tar tvfa <file> will give you a list including file sizes. Check man tar for details. You should also note, that file size does not equate to disk usage, since part of a file can take a full file system block.

Upvotes: 3

Related Questions