Zutils is a collection of utilities able to deal with any combination of compressed and non-compressed files transparently. If any given file, including standard input, is compressed, its decompressed content is used. Compressed files are decompressed on the fly; no temporary files are created. These utilities are not wrapper scripts but safer and more efficient C++ programs. In particular the "--recursive" option is very efficient in those utilities supporting it. The provided utilities are zcat, zcmp, zdiff, zgrep, and ztest. The supported compressors are bzip2, gzip, lzip, and xz.
| Tags | Compression |
|---|---|
| Licenses | GPLv3+ |
| Operating Systems | POSIX |
| Implementation | C++ |
Recent releases


Release Notes: The output of "zgrep -L" has been fixed (it behaved like "zgrep -l").


Release Notes: Decompressors are now invoked without the "-q" option unless explicitly requested, as some simplified implementations do not accept it.


Release Notes: Zgrep now shows file names by default when "--recursive" is selected. A deadlock in zcmp, which happens when the "-n" option was used, has been fixed.


Release Notes: Zgrep no longer prefixes the file name to the output by default when searching one file. A portability issue with Solaris 9 has been (hopefully) fixed.


Release Notes: This release adds minor fixes. The new option "--format", which forces the use of a given compression format, has been added to all utilities. The target "install-bin" has been added to the Makefile.
Recent comments
07 Sep 2009 13:50
> It seems that this might be most useful if implemented similarly to mkfs or fsck, in util-linux.
What about "zdiff file1.gz file2.lz"?
03 Sep 2009 03:24
It seems that this might be most useful if implemented similarly to mkfs or fsck, in util-linux. For instance, if a file is named foo.gz, zcat would use zcat.gz or gzcat if available, before falling back on its built-in decompressor.
That way, if someone makes "thetazip" in the future, they could provide zcat.θz in their package; zutils would support the new format without needing to be updated. Also, maintenance would be in the hands of the developers maintaining the package; they would be best able to keep up with changes in their format.
Just a thought.