/etc/alternatives
NameSizeModeActions
aclocal377380755editdlrm
aclocal.1.gz14490644editdlrm
animate150160755editdlrm
animate-im7150160755editdlrm
animate-im7.1.gz21640644editdlrm
animate.1.gz21640644editdlrm
aptitude46553040755editdlrm
aptitude.8.gz144640644editdlrm
aptitude.cs.8.gz116600644editdlrm
aptitude.de.8.gz151100644editdlrm
aptitude.es.8.gz162000644editdlrm
aptitude.fi.8.gz71910644editdlrm
aptitude.fr.8.gz166240644editdlrm
aptitude.gl.8.gz12700644editdlrm
aptitude.it.8.gz153480644editdlrm
aptitude.ja.8.gz166010644editdlrm
aptitude.pl.8.gz172810644editdlrm
automake2643600755editdlrm
automake.1.gz17160644editdlrm
awk7172480755editdlrm
awk.1.gz194140644editdlrm
builtins.7.gz5080644editdlrm
bzr5442000755editdlrm
bzr.1.gz325780644editdlrm
c++11663600755editdlrm
c894280755editdlrm
c89.1.gz13650644editdlrm
c994540755editdlrm
c99.1.gz14210644editdlrm
cc11622640755editdlrm
compare150160755editdlrm
compare-im7150160755editdlrm
compare-im7.1.gz22420644editdlrm
compare.1.gz22420644editdlrm
composite150160755editdlrm
composite-im7150160755editdlrm
composite-im7.1.gz24150644editdlrm
composite.1.gz24150644editdlrm
conjure150160755editdlrm
conjure-im7150160755editdlrm
conjure-im7.1.gz9460644editdlrm
conjure.1.gz9460644editdlrm
convert150160755editdlrm
convert-im7150160755editdlrm
convert-im7.1.gz59600644editdlrm
convert.1.gz59600644editdlrm
cpp11663600755editdlrm
csh4356560755editdlrm
csh.1.gz686460644editdlrm
ctags1065200755editdlrm
ctags.1.gz370644editdlrm
display150160755editdlrm
display-im7150160755editdlrm
display-im7.1.gz29570644editdlrm
display.1.gz29570644editdlrm
ebrowse477520755editdlrm
ebrowse.1.gz12360644editdlrm
editor39219840755editdlrm
editor.1.gz62320644editdlrm
editor.da.1.gz56460644editdlrm
editor.de.1.gz77430644editdlrm
editor.fr.1.gz65240644editdlrm
editor.it.1.gz70190644editdlrm
editor.ja.1.gz68550644editdlrm
editor.pl.1.gz62960644editdlrm
editor.ru.1.gz102250644editdlrm
editor.tr.1.gz58800644editdlrm
emacs103979680755editdlrm
emacs.1.gz66740644editdlrm
emacsclient316080755editdlrm
emacsclient.1.gz27330644editdlrm
etags1063280755editdlrm
etags.1.gz51270644editdlrm
ex39219840755editdlrm
ex.1.gz62320644editdlrm
ex.da.1.gz56460644editdlrm
ex.de.1.gz77430644editdlrm
ex.fr.1.gz65240644editdlrm
ex.it.1.gz70190644editdlrm
ex.ja.1.gz68550644editdlrm
ex.pl.1.gz62960644editdlrm
ex.ru.1.gz102250644editdlrm
ex.tr.1.gz58800644editdlrm
ftp1789600755editdlrm
ftp.1.gz173560644editdlrm
identify150160755editdlrm
identify-im7150160755editdlrm
identify-im7.1.gz21200644editdlrm
identify.1.gz21200644editdlrm
import150160755editdlrm
import-im7150160755editdlrm
import-im7.1.gz22820644editdlrm
import.1.gz22820644editdlrm
infobrowser2526960755editdlrm
infobrowser.1.gz13730644editdlrm
ksh3102400755editdlrm
ksh.1.gz566980644editdlrm
lzcat1051600755editdlrm
lzcat.1.gz240040644editdlrm
lzcmp75880755editdlrm
lzcmp.1.gz7870644editdlrm
lzdiff75880755editdlrm
lzdiff.1.gz7870644editdlrm
lzegrep104130755editdlrm
lzegrep.1.gz10060644editdlrm
lzfgrep104130755editdlrm
lzfgrep.1.gz10060644editdlrm
lzgrep104130755editdlrm
lzgrep.1.gz10060644editdlrm
lzless23830755editdlrm
lzless.1.gz7800644editdlrm
lzma1051600755editdlrm
lzma.1.gz240040644editdlrm
lzmore22340755editdlrm
lzmore.1.gz7720644editdlrm
magick150160755editdlrm
magick-im7150160755editdlrm
magick-script150160755editdlrm
magick-script-im7150160755editdlrm
Mail1170640755editdlrm
mail1170640755editdlrm
Mail.1.gz110270644editdlrm
mail.1.gz110270644editdlrm
mailx1170640755editdlrm
mailx.1.gz110270644editdlrm
mogrify150160755editdlrm
mogrify-im7150160755editdlrm
mogrify-im7.1.gz59230644editdlrm
mogrify.1.gz59230644editdlrm
montage150160755editdlrm
montage-im7150160755editdlrm
montage-im7.1.gz29900644editdlrm
montage.1.gz29900644editdlrm
mt434320755editdlrm
mt.1.gz20260644editdlrm
my.cnf11260644editdlrm
nawk7172480755editdlrm
nawk.1.gz194140644editdlrm
nc435920755editdlrm
nc.1.gz64430644editdlrm
ncftp3343200755editdlrm
ncftp.1.gz122160644editdlrm
netcat435920755editdlrm
netcat.1.gz64430644editdlrm
pager2493760755editdlrm
pager.1.gz289360644editdlrm
pico3039600755editdlrm
pico.1.gz82930644editdlrm
pinentry763600755editdlrm
pinentry.1.gz14150644editdlrm
README1000644editdlrm
rename44820755editdlrm
rename.1.gz26920644editdlrm
rksh3102400755editdlrm
rksh.1.gz566980644editdlrm
rmt647040755editdlrm
rmt.8.gz23990644editdlrm
rview39219840755editdlrm
rvim39219840755editdlrm
stream150160755editdlrm
stream-im7150160755editdlrm
stream-im7.1.gz14630644editdlrm
stream.1.gz14630644editdlrm
unlzma1051600755editdlrm
unlzma.1.gz240040644editdlrm
vi39219840755editdlrm
vi.1.gz62320644editdlrm
vi.da.1.gz56460644editdlrm
vi.de.1.gz77430644editdlrm
vi.fr.1.gz65240644editdlrm
vi.it.1.gz70190644editdlrm
vi.ja.1.gz68550644editdlrm
vi.pl.1.gz62960644editdlrm
vi.ru.1.gz102250644editdlrm
vi.tr.1.gz58800644editdlrm
view39219840755editdlrm
view.1.gz62320644editdlrm
view.da.1.gz56460644editdlrm
view.de.1.gz77430644editdlrm
view.fr.1.gz65240644editdlrm
view.it.1.gz70190644editdlrm
view.ja.1.gz68550644editdlrm
view.pl.1.gz62960644editdlrm
view.ru.1.gz102250644editdlrm
view.tr.1.gz58800644editdlrm
vim39219840755editdlrm
vimdiff39219840755editdlrm
which10800755editdlrm
which.1.gz4630644editdlrm
which.de1.gz8590644editdlrm
which.es1.gz5880644editdlrm
which.fr1.gz9090644editdlrm
which.it1.gz5900644editdlrm
which.ja1.gz7260644editdlrm
which.pl1.gz7860644editdlrm
which.sl1.gz6520644editdlrm
www-browser19624480755editdlrm
www-browser.1.gz146820644editdlrm
Edit: /usr/bin/xzdiff (7588B)
#!/bin/sh # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 1998, 2002, 2006, 2007 Free Software Foundation # Copyright (C) 1993 Jean-loup Gailly # Modified for XZ Utils by Andrew Dudman and Lasse Collin. # 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 2 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. #SET_PATH - This line is a placeholder to ease patching this script. # Instead of unsetting XZ_OPT, just make sure that xz will use file format # autodetection. This way memory usage limit and thread limit can be # specified via XZ_OPT. With gzip, bzip2, and lzop it's OK to just unset the # environment variables. xz='xz --format=auto' unset GZIP BZIP BZIP2 LZOP case ${0##*/} in *cmp*) prog=xzcmp; cmp=${CMP:-cmp};; *) prog=xzdiff; cmp=${DIFF:-diff};; esac version="$prog (XZ Utils) 5.8.1" usage="Usage: ${0##*/} [OPTION]... FILE1 [FILE2] Compare FILE1 to FILE2, using their uncompressed contents if they are compressed. If FILE2 is omitted, then the files compared are FILE1 and FILE1 from which the compression format suffix has been stripped. Do comparisons like '$cmp' does. OPTIONs are the same as for '$cmp'. Report bugs to ." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. escape=' s/'\''/'\''\\'\'''\''/g $s/X$/'\''/ ' while :; do case $1 in --h*) printf '%s\n' "$usage" || exit 2; exit;; --v*) printf '%s\n' "$version" || exit 2; exit;; --) shift; break;; -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;; -?*) cmp="$cmp '$1'";; *) break;; esac shift done cmp="$cmp --" for file; do test "X$file" = X- || <"$file" || exit 2 done # xz needs -qQ to ignore warnings like unsupported check type. xz1="$xz -qQ" xz2="$xz -qQ" xz_status=0 exec 3>&1 if test $# -eq 1; then case $1 in *[-.]xz | *[-.]lzma | *[-.]lz | *.t[lx]z) ;; *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; *[-.]zst | *.tzst) xz1='zstd -q';; *[-.]lz4) xz1=lz4;; *) printf '%s\n' "$0: $1: Unknown compressed file name suffix" >&2 exit 2;; esac case $1 in *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *[-.]lzo | *[-.]zst | *[-.]lz4) FILE=`expr "X$1" : 'X\(.*\)[-.][abglmostxzZ24]*$'`;; *.t[abglx]z) FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;; *.tbz2) FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;; *.tzo) FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;; *.tzst) FILE=`expr "X$1" : 'X\(.*[-.]t\)zst$'`ar;; esac xz_status=$( exec 4>&1 ($xz1 -cd -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$FILE"' >&3 ) elif test $# -eq 2; then case $1 in *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;; *[-.]lzo | *.tzo) xz1=lzop;; *[-.]zst | *.tzst) xz1='zstd -q';; *[-.]lz4) xz1=lz4;; esac case $2 in *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;; *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;; *[-.]lzo | *.tzo) xz2=lzop;; *[-.]zst | *.tzst) xz2='zstd -q';; *[-.]lz4) xz2=lz4;; esac case $1 in *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | *[-.]lz4 | -) case "$2" in *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | *[-.]lz4 | -) if test "$1$2" = --; then xz_status=$( exec 4>&1 ($xz1 -cdf - 4>&-; echo $? >&4) 3>&- | eval "$cmp" - - >&3 ) elif # Reject Solaris 8's buggy /bin/bash 2.03. echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then # NOTE: xz_status will contain two numbers. xz_status=$( exec 4>&1 ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | ( ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &3) 5<&0 ) else F=`expr "/$2" : '.*/\(.*\)[-.][ablmotxz2]*$'` || F=$prog tmp= trap ' test -n "$tmp" && rm -rf "$tmp" (exit 2); exit 2 ' HUP INT PIPE TERM 0 if type mktemp >/dev/null 2>&1; then # Note that FreeBSD's mktemp isn't fully compatible with # the implementations from mktemp.org and GNU coreutils. # It is important that the -t argument is the last argument # and that no "--" is used between -t and the template argument. # This way this command works on all implementations. tmp=`mktemp -d -t "$prog.XXXXXXXXXX"` || exit 2 else # Fallback code if mktemp is missing. This isn't as # robust as using mktemp since this doesn't try with # different file names in case of a file name conflict. # # There's no need to save the original umask since # we don't create any non-temp files. Note that using # mkdir -m 0077 isn't secure since some mkdir implementations # create the dir with the default umask and chmod the # the dir afterwards. umask 0077 mkdir -- "${TMPDIR-/tmp}/$prog.$$" || exit 2 tmp="${TMPDIR-/tmp}/$prog.$$" fi $xz2 -cdf -- "$2" > "$tmp/$F" || exit 2 xz_status=$( exec 4>&1 ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$tmp/$F"' >&3 ) cmp_status=$? rm -rf "$tmp" || xz_status=$? trap - HUP INT PIPE TERM 0 (exit $cmp_status) fi;; *) xz_status=$( exec 4>&1 ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$2"' >&3 );; esac;; *) case "$2" in *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | *[-.]lz4 | -) xz_status=$( exec 4>&1 ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- | eval "$cmp" '"$1"' - >&3 );; *) eval "$cmp" '"$1"' '"$2"';; esac;; esac else printf '%s\n' "$0: Invalid number of operands; try '${0##*/} --help' for help" >&2 exit 2 fi cmp_status=$? for num in $xz_status ; do # 0 from decompressor means successful decompression. SIGPIPE from # decompressor is possible when diff or cmp exits before the whole file # has been decompressed. In that case we want to retain the exit status # from diff or cmp. Note that using "trap '' PIPE" is not possible # because gzip changes its behavior (including exit status) if SIGPIPE # is ignored. test "$num" -eq 0 && continue test "$num" -ge 128 \ && test "$(kill -l "$num" 2> /dev/null)" = "PIPE" \ && continue exit 2 done exit $cmp_status