gzexe - Man Page
compress executable files in place
Examples (TL;DR)
- Compress an executable file in-place:
gzexe path/to/executable
- Decompress a compressed executable in-place (i.e. convert the shell script back to an uncompressed binary):
gzexe -d path/to/compressed_executable
Synopsis
gzexe name ...
Description
The gzexe utility allows you to compress executables in place and have them automatically uncompress and execute when you run them (at a penalty in performance). For example if you execute “gzexe /usr/bin/gdb” it will create the following two files:
-rwxr-xr-x 1 root root 1026675 Jun 7 13:53 /usr/bin/gdb -rwxr-xr-x 1 root root 2304524 May 30 13:02 /usr/bin/gdb~
/usr/bin/gdb~ is the original file and /usr/bin/gdb is the self-uncompressing executable file. You can remove /usr/bin/gdb~ once you are sure that /usr/bin/gdb works properly.
This utility is most useful on systems with very small disks.
Options
- -d
Decompress the given executables instead of compressing them.
See Also
Caveats
The compressed executable is a shell script. This may create some security holes. In particular, the compressed executable relies on the PATH environment variable to find gzip and some standard utilities (basename, chmod, ln, mkdir, mktemp, rm, sleep, and tail).
Bugs
The gzexe command attempts to retain the original file attributes on the compressed executable, but you may have to fix them manually in some cases, using chmod or chown.