#!/bin/sh # gzexe: compressor for Unix executables. # Use this only for binaries that you do not use frequently. # # The compressed version is a shell script which decompresses itself after # skipping $skip lines of shell commands. We try invoking the compressed # executable with the original name (for programs looking at their name). # We also try to retain the original file permissions on the compressed file. # For safety reasons, gzexe will not create setuid or setgid shell scripts. # WARNING: the first line of this file must be either : or #!/bin/sh # The : is required for some old versions of csh. # On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5 # Copyright (C) 1998, 2002, 2004, 2006, 2007 Free Software Foundation # Copyright (C) 1993 Jean-loup Gailly # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. tab=' ' nl=' ' IFS=" $tab$nl" version='gzexe (gzip) 1.6 Copyright (C) 2007, 2011-2013 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Written by Jean-loup Gailly.' usage="Usage: $0 [OPTION] FILE... Rename each FILE with a compressed version of itself, renaming FILE to FILE~. -d Decompress each FILE instead of compressing it. --help display this help and exit --version output version information and exit Report bugs to <bug-gzip@gnu.org>." bindir='/bin' case $1 in --__bindir) bindir=${2?}; shift; shift;; esac PATH=$bindir:$PATH decomp=0 res=0 while :; do case $1 in -d) decomp=1; shift;; --h*) exec echo "$usage";; --v*) exec echo "$version";; --) shift; break;; *) break;; esac done if test $# -eq 0; then echo >&2 "$0: missing operand Try \`$0 --help' for more information." exit 1 fi tmp= trap 'res=$? test -n "$tmp" && rm -f "$tmp" (exit $res); exit $res ' 0 1 2 3 5 10 13 15 mktemp_status= for i do case $i in -*) file=./$i;; *) file=$i;; esac if test ! -f "$file" || test ! -r "$file"; then res=$? echo >&2 "$0: $i is not a readable regular file" continue fi if test $decomp -eq 0; then case `LC_ALL=C sed -n -e 1d -e '/^skip=[0-9][0-9]*$/p' -e 2q "$file"` in skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9]) echo >&2 "$0: $i is already gzexe'd" continue;; esac fi if test -u "$file"; then echo >&2 "$0: $i has setuid permission, unchanged" continue fi if test -g "$file"; then echo >&2 "$0: $i has setgid permission, unchanged" continue fi case /$file in */basename | */bash | */cat | */chmod | */cp | \ */dirname | */echo | */expr | */gzip | \ */ln | */mkdir | */mktemp | */mv | */rm | \ */sed | */sh | */sleep | */test | */tail) echo >&2 "$0: $i might depend on itself"; continue;; esac dir=`dirname "$file"` || dir=$TMPDIR test -d "$dir" && test -w "$dir" && test -x "$dir" || dir=/tmp test -n "$tmp" && rm -f "$tmp" if test -z "$mktemp_status"; then type mktemp >/dev/null 2>&1 mktemp_status=$? fi if test $mktemp_status -eq 0; then tmp=`TMPDIR=$dir mktemp -t gzexeXXXXXX` else tmp=$dir/gzexe$$ fi && { cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp"; } || { res=$? echo >&2 "$0: cannot copy $file" continue } if test -w "$tmp"; then writable=1 else writable=0 chmod u+w "$tmp" || { res=$? echo >&2 "$0: cannot chmod $tmp" continue } fi if test $decomp -eq 0; then (cat <<'EOF' && #!/bin/sh skip=44 tab=' ' nl=' ' IFS=" $tab$nl" umask=`umask` umask 77 gztmpdir= trap 'res=$? test -n "$gztmpdir" && rm -fr "$gztmpdir" (exit $res); exit $res ' 0 1 2 3 5 10 13 15 if type mktemp >/dev/null 2>&1; then gztmpdir=`mktemp -dt` else gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir fi || { (exit 127); exit 127; } gztmp=$gztmpdir/$0 case $0 in -* | */*' ') mkdir -p "$gztmp" && rm -r "$gztmp";; */*) gztmp=$gztmpdir/`basename "$0"`;; esac || { (exit 127); exit 127; } case `echo X | tail -n +1 2>/dev/null` in X) tail_n=-n;; *) tail_n=;; esac if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then umask $umask chmod 700 "$gztmp" (sleep 5; rm -fr "$gztmpdir") 2>/dev/null & "$gztmp" ${1+"$@"}; res=$? else echo >&2 "Cannot decompress $0" (exit 127); res=127 fi; exit $res EOF gzip -cv9 "$file") > "$tmp" || { res=$? echo >&2 "$0: compression not possible for $i, file unchanged." continue } else # decompression skip=44 skip_line=`LC_ALL=C sed -e 1d -e 2q "$file"` case $skip_line in skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9]) eval "$skip_line";; esac case `echo X | tail -n +1 2>/dev/null` in X) tail_n=-n;; *) tail_n=;; esac tail $tail_n +$skip "$file" | gzip -cd > "$tmp" || { res=$? echo >&2 "$0: $i probably not in gzexe format, file unchanged." continue } fi test $writable -eq 1 || chmod u-w "$tmp" || { res=$? echo >&2 "$0: $tmp: cannot chmod" continue } ln -f "$file" "$file~" || { res=$? echo >&2 "$0: cannot backup $i as $i~" continue } mv -f "$tmp" "$file" || { res=$? echo >&2 "$0: cannot rename $tmp to $i" continue } tmp= done (exit $res); exit $res
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
bash | File | 1.06 MB | 0755 |
|
btrfs | File | 699.67 KB | 0755 |
|
btrfs-debug-tree | File | 367.14 KB | 0755 |
|
btrfs-find-root | File | 363.14 KB | 0755 |
|
btrfs-image | File | 387.14 KB | 0755 |
|
btrfs-map-logical | File | 367.14 KB | 0755 |
|
btrfs-select-super | File | 363.14 KB | 0755 |
|
btrfs-zero-log | File | 363.14 KB | 0755 |
|
btrfsck | File | 699.67 KB | 0755 |
|
btrfstune | File | 367.14 KB | 0755 |
|
bunzip2 | File | 34.07 KB | 0755 |
|
busybox | File | 1.97 MB | 0755 |
|
bzcat | File | 34.07 KB | 0755 |
|
bzcmp | File | 2.09 KB | 0755 |
|
bzdiff | File | 2.09 KB | 0755 |
|
bzegrep | File | 3.56 KB | 0755 |
|
bzexe | File | 4.76 KB | 0755 |
|
bzfgrep | File | 3.56 KB | 0755 |
|
bzgrep | File | 3.56 KB | 0755 |
|
bzip2 | File | 34.07 KB | 0755 |
|
bzip2recover | File | 13.99 KB | 0755 |
|
bzless | File | 1.27 KB | 0755 |
|
bzmore | File | 1.27 KB | 0755 |
|
cat | File | 34.24 KB | 0755 |
|
chacl | File | 13.99 KB | 0755 |
|
chgrp | File | 62.18 KB | 0755 |
|
chmod | File | 58.21 KB | 0755 |
|
chown | File | 66.18 KB | 0755 |
|
chvt | File | 10.07 KB | 0755 |
|
cp | File | 138.21 KB | 0755 |
|
cpio | File | 153.54 KB | 0755 |
|
dash | File | 118.59 KB | 0755 |
|
date | File | 98.21 KB | 0755 |
|
dd | File | 74.22 KB | 0755 |
|
df | File | 82.79 KB | 0755 |
|
dir | File | 130.66 KB | 0755 |
|
dmesg | File | 70.31 KB | 0755 |
|
dnsdomainname | File | 18.07 KB | 0755 |
|
domainname | File | 18.07 KB | 0755 |
|
dumpkeys | File | 166.52 KB | 0755 |
|
echo | File | 34.18 KB | 0755 |
|
ed | File | 50.3 KB | 0755 |
|
efibootdump | File | 17.99 KB | 0755 |
|
efibootmgr | File | 39.12 KB | 0755 |
|
egrep | File | 28 B | 0755 |
|
false | File | 30.18 KB | 0755 |
|
fgconsole | File | 10.07 KB | 0755 |
|
fgrep | File | 28 B | 0755 |
|
findmnt | File | 63.27 KB | 0755 |
|
fsck.btrfs | File | 1.16 KB | 0755 |
|
fuser | File | 35.09 KB | 0755 |
|
fusermount | File | 30.08 KB | 4755 |
|
getfacl | File | 22.62 KB | 0755 |
|
grep | File | 214.31 KB | 0755 |
|
gunzip | File | 2.25 KB | 0755 |
|
gzexe | File | 5.86 KB | 0755 |
|
gzip | File | 99.18 KB | 0755 |
|
hostname | File | 18.07 KB | 0755 |
|
ip | File | 545.12 KB | 0755 |
|
journalctl | File | 62.09 KB | 0755 |
|
kbd_mode | File | 10.07 KB | 0755 |
|
kill | File | 26.08 KB | 0755 |
|
kmod | File | 146.18 KB | 0755 |
|
less | File | 166.76 KB | 0755 |
|
lessecho | File | 10.02 KB | 0755 |
|
lessfile | File | 8.36 KB | 0755 |
|
lesskey | File | 19.39 KB | 0755 |
|
lesspipe | File | 8.36 KB | 0755 |
|
ln | File | 66.22 KB | 0755 |
|
loadkeys | File | 206.57 KB | 0755 |
|
login | File | 51.43 KB | 0755 |
|
loginctl | File | 50.08 KB | 0755 |
|
lowntfs-3g | File | 106.67 KB | 0755 |
|
ls | File | 130.66 KB | 0755 |
|
lsblk | File | 82.08 KB | 0755 |
|
lsmod | File | 146.18 KB | 0755 |
|
mkdir | File | 78.18 KB | 0755 |
|
mkfs.btrfs | File | 387.17 KB | 0755 |
|
mknod | File | 66.18 KB | 0755 |
|
mktemp | File | 42.18 KB | 0755 |
|
more | File | 38.04 KB | 0755 |
|
mount | File | 42.08 KB | 4755 |
|
mountpoint | File | 14.07 KB | 0755 |
|
mt | File | 78.63 KB | 0755 |
|
mt-gnu | File | 78.63 KB | 0755 |
|
mv | File | 134.22 KB | 0755 |
|
nano | File | 240.11 KB | 0755 |
|
nc | File | 34.48 KB | 0755 |
|
nc.openbsd | File | 34.48 KB | 0755 |
|
netcat | File | 34.48 KB | 0755 |
|
netstat | File | 150.58 KB | 0755 |
|
networkctl | File | 42.07 KB | 0755 |
|
nisdomainname | File | 18.07 KB | 0755 |
|
ntfs-3g | File | 142.7 KB | 0755 |
|
ntfs-3g.probe | File | 10.07 KB | 0755 |
|
ntfscat | File | 26.1 KB | 0755 |
|
ntfscluster | File | 34.1 KB | 0755 |
|
ntfscmp | File | 34.1 KB | 0755 |
|
ntfsfallocate | File | 34.11 KB | 0755 |
|
ntfsfix | File | 42.11 KB | 0755 |
|
ntfsinfo | File | 54.12 KB | 0755 |
|
ntfsls | File | 31.18 KB | 0755 |
|
ntfsmove | File | 30.1 KB | 0755 |
|
ntfsrecover | File | 114.1 KB | 0755 |
|
ntfssecaudit | File | 86.59 KB | 0755 |
|
ntfstruncate | File | 38.03 KB | 0755 |
|
ntfsusermap | File | 30.02 KB | 0755 |
|
ntfswipe | File | 46.63 KB | 0755 |
|
open | File | 18.43 KB | 0755 |
|
openvt | File | 18.43 KB | 0755 |
|
pidof | File | 22.08 KB | 0755 |
|
ping | File | 62.91 KB | 4755 |
|
ping4 | File | 62.91 KB | 4755 |
|
ping6 | File | 62.91 KB | 4755 |
|
plymouth | File | 37.99 KB | 0755 |
|
ps | File | 130.3 KB | 0755 |
|
pwd | File | 34.18 KB | 0755 |
|
rbash | File | 1.06 MB | 0755 |
|
readlink | File | 42.18 KB | 0755 |
|
red | File | 89 B | 0755 |
|
rm | File | 62.21 KB | 0755 |
|
rmdir | File | 42.18 KB | 0755 |
|
rnano | File | 240.11 KB | 0755 |
|
run-parts | File | 18.32 KB | 0755 |
|
sed | File | 106.45 KB | 0755 |
|
setfacl | File | 34.68 KB | 0755 |
|
setfont | File | 42.13 KB | 0755 |
|
setupcon | File | 38.19 KB | 0755 |
|
sh | File | 118.59 KB | 0755 |
|
sh.distrib | File | 118.59 KB | 0755 |
|
sleep | File | 34.18 KB | 0755 |
|
ss | File | 136.63 KB | 0755 |
|
static-sh | File | 1.97 MB | 0755 |
|
stty | File | 74.21 KB | 0755 |
|
su | File | 43.62 KB | 4755 |
|
sync | File | 34.18 KB | 0755 |
|
systemctl | File | 178.08 KB | 0755 |
|
systemd | File | 1.54 MB | 0755 |
|
systemd-ask-password | File | 10.08 KB | 0755 |
|
systemd-escape | File | 14.06 KB | 0755 |
|
systemd-hwdb | File | 82.35 KB | 0755 |
|
systemd-inhibit | File | 14.08 KB | 0755 |
|
systemd-machine-id-setup | File | 18.06 KB | 0755 |
|
systemd-notify | File | 14.07 KB | 0755 |
|
systemd-sysusers | File | 42.07 KB | 0755 |
|
systemd-tmpfiles | File | 70.07 KB | 0755 |
|
systemd-tty-ask-password-agent | File | 26.07 KB | 0755 |
|
tar | File | 413.39 KB | 0755 |
|
tempfile | File | 9.87 KB | 0755 |
|
touch | File | 86.21 KB | 0755 |
|
true | File | 30.18 KB | 0755 |
|
udevadm | File | 574.4 KB | 0755 |
|
ulockmgr_server | File | 13.99 KB | 0755 |
|
umount | File | 26.07 KB | 4755 |
|
uname | File | 34.21 KB | 0755 |
|
uncompress | File | 2.25 KB | 0755 |
|
unicode_start | File | 2.7 KB | 0755 |
|
vdir | File | 130.66 KB | 0755 |
|
wdctl | File | 30.08 KB | 0755 |
|
which | File | 946 B | 0755 |
|
whiptail | File | 26.01 KB | 0755 |
|
ypdomainname | File | 18.07 KB | 0755 |
|
zcat | File | 1.89 KB | 0755 |
|
zcmp | File | 1.74 KB | 0755 |
|
zdiff | File | 5.65 KB | 0755 |
|
zegrep | File | 140 B | 0755 |
|
zfgrep | File | 140 B | 0755 |
|
zforce | File | 2.08 KB | 0755 |
|
zgrep | File | 6.3 KB | 0755 |
|
zless | File | 1.99 KB | 0755 |
|
zmore | File | 1.87 KB | 0755 |
|
znew | File | 4.95 KB | 0755 |
|