Linux localhost 6.1.10-x86_64-linode159 #1 SMP PREEMPT_DYNAMIC Wed Feb 8 14:14:45 EST 2023 x86_64
Apache/2.4.25 (Debian)
Server IP : 45.33.61.127 & Your IP : 216.73.216.156
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
2to3
96
B
-rwxr-xr-x
2020-08-22 10:03
2to3-2.7
96
B
-rwxr-xr-x
2020-08-22 10:03
2to3-3.5
96
B
-rwxr-xr-x
2020-11-18 21:09
[
50.79
KB
-rwxr-xr-x
2017-02-22 12:23
ab
50.18
KB
-rwxr-xr-x
2019-10-13 15:43
addpart
22.53
KB
-rwxr-xr-x
2018-03-07 18:29
apropos
46.98
KB
-rwxr-xr-x
2016-12-13 13:10
apt
14.09
KB
-rwxr-xr-x
2020-12-07 12:45
apt-cache
78.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-cdrom
22.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-config
22.09
KB
-rwxr-xr-x
2020-12-07 12:45
apt-extracttemplates
22.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-ftparchive
238.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-get
42.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-key
25.65
KB
-rwxr-xr-x
2020-12-07 12:45
apt-listchanges
8.88
KB
-rwxr-xr-x
2017-04-10 21:14
apt-mark
42.16
KB
-rwxr-xr-x
2020-12-07 12:45
apt-sortpkgs
38.09
KB
-rwxr-xr-x
2020-12-07 12:45
arch
34.76
KB
-rwxr-xr-x
2017-02-22 12:23
aria_chk
4.76
MB
-rwxr-xr-x
2021-01-31 16:38
aria_dump_log
4.56
MB
-rwxr-xr-x
2021-01-31 16:38
aria_ftdump
4.58
MB
-rwxr-xr-x
2021-01-31 16:38
aria_pack
4.6
MB
-rwxr-xr-x
2021-01-31 16:38
aria_read_log
4.72
MB
-rwxr-xr-x
2021-01-31 16:38
awk
646.72
KB
-rwxr-xr-x
2017-01-25 16:06
b2sum
54.88
KB
-rwxr-xr-x
2017-02-22 12:23
base32
38.79
KB
-rwxr-xr-x
2017-02-22 12:23
base64
38.79
KB
-rwxr-xr-x
2017-02-22 12:23
basename
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
bashbug
6.95
KB
-rwxr-xr-x
2017-05-15 19:45
bootctl
38.41
KB
-rwxr-xr-x
2019-07-21 18:43
bsd-from
10.3
KB
-rwxr-xr-x
2017-04-12 11:22
bsd-write
14.42
KB
-rwxr-sr-x
2017-04-12 11:22
buildhash
38.38
KB
-rwxr-xr-x
2016-03-04 07:59
busctl
62.43
KB
-rwxr-xr-x
2019-07-21 18:43
c2ph
35.89
KB
-rwxr-xr-x
2020-06-20 17:33
c_rehash
6.18
KB
-rwxr-xr-x
2020-12-11 09:22
cal
29.21
KB
-rwxr-xr-x
2017-04-12 11:22
calendar
31.24
KB
-rwxr-xr-x
2017-04-12 11:22
captoinfo
78.11
KB
-rwxr-xr-x
2017-12-28 09:47
catchsegv
3.22
KB
-rwxr-xr-x
2019-02-06 21:17
catman
34.46
KB
-rwxr-xr-x
2016-12-13 13:10
certbot
385
B
-rwxr-xr-x
2020-09-26 18:25
chage
70.17
KB
-rwxr-sr-x
2017-05-17 11:59
chardet3
309
B
-rwxr-xr-x
2016-02-10 10:46
chardetect3
309
B
-rwxr-xr-x
2016-02-10 10:46
chattr
14
KB
-rwxr-xr-x
2020-07-25 09:03
chcon
63.01
KB
-rwxr-xr-x
2017-02-22 12:23
checkgid
5.99
KB
-rwxr-xr-x
2019-10-13 15:43
chfn
48.87
KB
-rwsr-xr-x
2017-05-17 11:59
chrt
30.76
KB
-rwxr-xr-x
2018-03-07 18:29
chsh
39.55
KB
-rwsr-xr-x
2017-05-17 11:59
cifsiostat
30.13
KB
-rwxr-xr-x
2017-05-25 20:26
ckbcomp
146.32
KB
-rwxr-xr-x
2017-04-07 03:55
cksum
34.76
KB
-rwxr-xr-x
2017-02-22 12:23
clear
5.99
KB
-rwxr-xr-x
2017-12-28 09:47
clear_console
10.3
KB
-rwxr-xr-x
2017-05-15 19:45
cmp
42.74
KB
-rwxr-xr-x
2017-01-09 22:55
codepage
10.27
KB
-rwxr-xr-x
2016-01-05 16:55
col
10.29
KB
-rwxr-xr-x
2017-04-12 11:22
colcrt
10.26
KB
-rwxr-xr-x
2017-04-12 11:22
colrm
10.25
KB
-rwxr-xr-x
2017-04-12 11:22
column
14.41
KB
-rwxr-xr-x
2017-04-12 11:22
comm
38.79
KB
-rwxr-xr-x
2017-02-22 12:23
compose
17.74
KB
-rwxr-xr-x
2016-05-01 11:20
corelist
12.53
KB
-rwxr-xr-x
2020-06-20 17:33
cpan
7.41
KB
-rwxr-xr-x
2020-06-20 17:33
cpan5.24-x86_64-linux-gnu
7.43
KB
-rwxr-xr-x
2020-06-20 17:33
crontab
39.32
KB
-rwxr-sr-x
2017-10-07 13:38
csplit
46.95
KB
-rwxr-xr-x
2017-02-22 12:23
ctstat
18.8
KB
-rwxr-xr-x
2017-11-24 09:22
curl
194.07
KB
-rwxr-xr-x
2020-12-17 19:12
cut
42.85
KB
-rwxr-xr-x
2017-02-22 12:23
dbilogstrip
1.35
KB
-rwxr-xr-x
2020-09-21 15:33
dbiprof
6.06
KB
-rwxr-xr-x
2020-09-21 15:33
dbiproxy
5.27
KB
-rwxr-xr-x
2020-09-21 15:33
dbus-cleanup-sockets
9.98
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-daemon
218.95
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-monitor
21.99
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-run-session
9.98
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-send
25.98
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-update-activation-environment
13.98
KB
-rwxr-xr-x
2020-07-02 19:36
dbus-uuidgen
9.98
KB
-rwxr-xr-x
2020-07-02 19:36
deallocvt
10.38
KB
-rwxr-xr-x
2016-01-05 16:55
deb-systemd-helper
19.67
KB
-rwxr-xr-x
2017-05-02 10:20
deb-systemd-invoke
4.4
KB
-rwxr-xr-x
2017-05-02 10:20
debconf
2.79
KB
-rwxr-xr-x
2017-05-21 17:08
debconf-apt-progress
11.27
KB
-rwxr-xr-x
2017-05-21 17:08
debconf-communicate
608
B
-rwxr-xr-x
2017-05-21 17:08
debconf-copydb
1.68
KB
-rwxr-xr-x
2017-05-21 17:08
debconf-escape
647
B
-rwxr-xr-x
2017-05-21 17:08
debconf-set-selections
2.87
KB
-rwxr-xr-x
2017-05-21 17:08
debconf-show
1.78
KB
-rwxr-xr-x
2017-05-21 17:08
defmt-c
5.99
KB
-rwxr-xr-x
2016-03-04 07:59
defmt-sh
5.99
KB
-rwxr-xr-x
2016-03-04 07:59
delpart
22.53
KB
-rwxr-xr-x
2018-03-07 18:29
dh_bash-completion
2.49
KB
-rwxr-xr-x
2015-08-18 19:47
dh_installxmlcatalogs
9.22
KB
-rwxr-xr-x
2016-11-07 14:53
dh_perl_dbi
1.04
KB
-rwxr-xr-x
2020-09-21 15:33
dh_pypy
12.56
KB
-rwxr-xr-x
2017-01-25 14:47
dh_python2
1.03
KB
-rwxr-xr-x
2017-01-24 13:00
dh_python3
12.77
KB
-rwxr-xr-x
2017-01-25 14:47
diff
143.38
KB
-rwxr-xr-x
2017-01-09 22:55
diff3
58.95
KB
-rwxr-xr-x
2017-01-09 22:55
dircolors
42.77
KB
-rwxr-xr-x
2017-02-22 12:23
dirname
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
discover-config
2.86
KB
-rwxr-xr-x
2018-02-26 19:38
dotlockfile
18.56
KB
-rwxr-sr-x
2017-01-17 13:05
dpkg
286.5
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-deb
146.34
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-divert
138.41
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-maintscript-helper
18.58
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-query
146.4
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-split
114.34
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-statoverride
70.25
KB
-rwxr-xr-x
2018-06-26 10:28
dpkg-trigger
66.26
KB
-rwxr-xr-x
2018-06-26 10:28
du
103.16
KB
-rwxr-xr-x
2017-02-22 12:23
dumpkeys
162.98
KB
-rwxr-xr-x
2016-01-05 16:55
dvipdf
1023
B
-rwxr-xr-x
2020-08-20 14:04
easy_install3
404
B
-rwxr-xr-x
2017-01-19 17:02
edit
17.74
KB
-rwxr-xr-x
2016-05-01 11:20
editor
220.04
KB
-rwxr-xr-x
2017-01-11 02:10
enc2xs
40.21
KB
-rwxr-xr-x
2020-06-20 17:33
encguess
2.99
KB
-rwxr-xr-x
2020-06-20 17:33
env
30.76
KB
-rwxr-xr-x
2017-02-22 12:23
envsubst
34.7
KB
-rwxr-xr-x
2019-08-30 23:30
eps2eps
639
B
-rwxr-xr-x
2020-08-20 14:04
eqn
185.19
KB
-rwxr-xr-x
2016-12-13 13:06
ex
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
expand
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
expiry
22.27
KB
-rwxr-sr-x
2017-05-17 11:59
expr
42.82
KB
-rwxr-xr-x
2017-02-22 12:23
factor
74.88
KB
-rwxr-xr-x
2017-02-22 12:23
faillog
18.29
KB
-rwxr-xr-x
2017-05-17 11:59
fallocate
26.64
KB
-rwxr-xr-x
2018-03-07 18:29
fcgistarter
9.99
KB
-rwxr-xr-x
2019-10-13 15:43
filan
83.85
KB
-rwxr-xr-x
2017-07-14 13:52
file
22.26
KB
-rwxr-xr-x
2019-10-22 20:20
file-rename
3.1
KB
-rwxr-xr-x
2015-06-04 22:55
find
216.57
KB
-rwxr-xr-x
2017-02-18 15:37
findaffix
11.74
KB
-rwxr-xr-x
2016-03-04 07:59
flock
26.79
KB
-rwxr-xr-x
2018-03-07 18:29
fmt
38.79
KB
-rwxr-xr-x
2017-02-22 12:23
fold
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
free
18.08
KB
-rwxr-xr-x
2018-05-17 10:56
from
10.3
KB
-rwxr-xr-x
2017-04-12 11:22
futurize
384
B
-rwxr-xr-x
2016-09-23 17:38
galera_new_cluster
888
B
-rwxr-xr-x
2021-01-31 16:38
galera_recovery
3.28
KB
-rwxr-xr-x
2021-01-31 16:38
gawk
646.72
KB
-rwxr-xr-x
2017-01-25 16:06
geqn
185.19
KB
-rwxr-xr-x
2016-12-13 13:06
getconf
22.37
KB
-rwxr-xr-x
2019-02-06 21:17
getent
23.31
KB
-rwxr-xr-x
2019-02-06 21:17
getkeycodes
10.37
KB
-rwxr-xr-x
2016-01-05 16:55
getopt
14.49
KB
-rwxr-xr-x
2018-03-07 18:29
gettext
34.68
KB
-rwxr-xr-x
2019-08-30 23:30
gettext.sh
4.52
KB
-rwxr-xr-x
2019-08-30 23:30
ghostscript
10.24
KB
-rwxr-xr-x
2020-08-20 14:04
gpasswd
74.02
KB
-rwsr-xr-x
2017-05-17 11:59
gpg
977.35
KB
-rwxr-xr-x
2019-02-07 20:57
gpg-agent
376.63
KB
-rwxr-xr-x
2019-02-07 20:57
gpg-connect-agent
150.73
KB
-rwxr-xr-x
2019-02-07 20:57
gpg-zip
3.36
KB
-rwxr-xr-x
2019-02-07 20:57
gpgconf
157.41
KB
-rwxr-xr-x
2019-02-07 20:57
gpgparsemail
26.07
KB
-rwxr-xr-x
2019-02-07 20:57
gpgsplit
74.33
KB
-rwxr-xr-x
2019-02-07 20:57
gpgv
410.64
KB
-rwxr-xr-x
2019-02-07 20:57
gpic
196.03
KB
-rwxr-xr-x
2016-12-13 13:06
groff
101.31
KB
-rwxr-xr-x
2016-12-13 13:06
grog
2.71
KB
-rwxr-xr-x
2016-12-13 13:06
grops
161.72
KB
-rwxr-xr-x
2016-12-13 13:06
grotty
117.34
KB
-rwxr-xr-x
2016-12-13 13:06
groups
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
grub-editenv
236.97
KB
-rwxr-xr-x
2019-06-12 11:20
grub-file
660.64
KB
-rwxr-xr-x
2019-06-12 11:20
grub-fstest
786.75
KB
-rwxr-xr-x
2019-06-12 11:20
grub-glue-efi
232.81
KB
-rwxr-xr-x
2019-06-12 11:20
grub-kbdcomp
1.64
KB
-rwxr-xr-x
2019-06-12 11:20
grub-menulst2cfg
216.83
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkfont
261.47
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkimage
325.88
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mklayout
241.09
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mknetdir
366.55
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkpasswd-pbkdf2
241.16
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkrelpath
232.5
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkrescue
819.39
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mkstandalone
442.88
KB
-rwxr-xr-x
2019-06-12 11:20
grub-mount
605.28
KB
-rwxr-xr-x
2019-06-12 11:20
grub-ntldr-img
34.45
KB
-rwxr-xr-x
2019-06-12 11:20
grub-render-label
673.23
KB
-rwxr-xr-x
2019-06-12 11:20
grub-script-check
260.63
KB
-rwxr-xr-x
2019-06-12 11:20
grub-syslinux2cfg
621.75
KB
-rwxr-xr-x
2019-06-12 11:20
gs
10.24
KB
-rwxr-xr-x
2020-08-20 14:04
gsbj
350
B
-rwxr-xr-x
2020-08-20 14:04
gsdj
352
B
-rwxr-xr-x
2020-08-20 14:04
gsdj500
352
B
-rwxr-xr-x
2020-08-20 14:04
gslj
353
B
-rwxr-xr-x
2020-08-20 14:04
gslp
350
B
-rwxr-xr-x
2020-08-20 14:04
gsnd
277
B
-rwxr-xr-x
2020-08-20 14:04
gtbl
118.2
KB
-rwxr-xr-x
2016-12-13 13:06
h2ph
28.52
KB
-rwxr-xr-x
2020-06-20 17:33
h2xs
59.39
KB
-rwxr-xr-x
2020-06-20 17:33
hd
26.61
KB
-rwxr-xr-x
2017-04-12 11:22
head
42.82
KB
-rwxr-xr-x
2017-02-22 12:23
helpztags
2.46
KB
-rwxr-xr-x
2019-06-21 04:10
hexdump
26.61
KB
-rwxr-xr-x
2017-04-12 11:22
host
114.45
KB
-rwxr-xr-x
2020-08-26 18:03
hostid
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
hostnamectl
18.34
KB
-rwxr-xr-x
2019-07-21 18:43
htcacheclean
30
KB
-rwxr-xr-x
2019-10-13 15:43
htdbm
17.99
KB
-rwxr-xr-x
2019-10-13 15:43
htdigest
9.99
KB
-rwxr-xr-x
2019-10-13 15:43
htpasswd
17.99
KB
-rwxr-xr-x
2019-10-13 15:43
i386
18.73
KB
-rwxr-xr-x
2018-03-07 18:29
icombine
34.38
KB
-rwxr-xr-x
2016-03-04 07:59
iconv
55.01
KB
-rwxr-xr-x
2019-02-06 21:17
id
42.91
KB
-rwxr-xr-x
2017-02-22 12:23
igawk
3.11
KB
-rwxr-xr-x
2017-01-25 16:06
ijoin
14.1
KB
-rwxr-xr-x
2016-03-04 07:59
infocmp
58.07
KB
-rwxr-xr-x
2017-12-28 09:47
infotocap
78.11
KB
-rwxr-xr-x
2017-12-28 09:47
innochecksum
3.42
MB
-rwxr-xr-x
2021-01-31 16:38
innotop
445.81
KB
-rwxr-xr-x
2020-10-12 17:40
install
135.61
KB
-rwxr-xr-x
2017-02-22 12:23
instmodsh
4.27
KB
-rwxr-xr-x
2020-06-20 17:33
ionice
26.66
KB
-rwxr-xr-x
2018-03-07 18:29
iostat
42.13
KB
-rwxr-xr-x
2017-05-25 20:26
ipcmk
26.77
KB
-rwxr-xr-x
2018-03-07 18:29
ipcrm
26.63
KB
-rwxr-xr-x
2018-03-07 18:29
ipcs
50.79
KB
-rwxr-xr-x
2018-03-07 18:29
iptables-xml
92.74
KB
-rwxr-xr-x
2017-04-12 09:41
ischroot
10.3
KB
-rwxr-xr-x
2017-04-02 17:10
ispell
94.46
KB
-rwxr-xr-x
2016-03-04 07:59
ispell-wrapper
7.05
KB
-rwxr-xr-x
2016-10-10 09:58
join
46.85
KB
-rwxr-xr-x
2017-02-22 12:23
json_pp
3.86
KB
-rwxr-xr-x
2020-06-20 17:33
kbdinfo
10.38
KB
-rwxr-xr-x
2016-01-05 16:55
kbxutil
154.63
KB
-rwxr-xr-x
2019-02-07 20:57
kernel-install
3.91
KB
-rwxr-xr-x
2019-07-21 18:43
killall
23.68
KB
-rwxr-xr-x
2015-08-17 13:18
last
42.85
KB
-rwxr-xr-x
2018-03-07 18:29
lastb
42.85
KB
-rwxr-xr-x
2018-03-07 18:29
lastlog
18.07
KB
-rwxr-xr-x
2017-05-17 11:59
lcf
7.6
KB
-rwxr-xr-x
2016-03-16 20:58
ldd
5.27
KB
-rwxr-xr-x
2019-02-06 21:17
less
161.82
KB
-rwxr-xr-x
2016-02-28 11:28
lessecho
10.02
KB
-rwxr-xr-x
2016-02-28 11:28
lessfile
7.58
KB
-rwxr-xr-x
2016-02-28 11:28
lesskey
19.36
KB
-rwxr-xr-x
2016-02-28 11:28
lesspipe
7.58
KB
-rwxr-xr-x
2016-02-28 11:28
letsencrypt
385
B
-rwxr-xr-x
2020-09-26 18:25
lexgrog
90.57
KB
-rwxr-xr-x
2016-12-13 13:10
lft
2.43
KB
-rwxr-xr-x
2016-08-29 15:45
lft.db
2.43
KB
-rwxr-xr-x
2016-08-29 15:45
libnetcfg
15.39
KB
-rwxr-xr-x
2020-06-20 17:33
line
10.4
KB
-rwxr-xr-x
2018-03-07 18:29
link
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
linux-boot-prober
1.54
KB
-rwxr-xr-x
2017-01-20 15:28
linux-check-removal
3.99
KB
-rwxr-xr-x
2016-06-21 02:48
linux-update-symlinks
6.17
KB
-rwxr-xr-x
2016-06-05 01:13
linux-version
2.63
KB
-rwxr-xr-x
2015-08-11 15:45
linux32
18.73
KB
-rwxr-xr-x
2018-03-07 18:29
linux64
18.73
KB
-rwxr-xr-x
2018-03-07 18:29
lnstat
18.8
KB
-rwxr-xr-x
2017-11-24 09:22
loadkeys
199.46
KB
-rwxr-xr-x
2016-01-05 16:55
loadunimap
26.68
KB
-rwxr-xr-x
2016-01-05 16:55
locale
37.91
KB
-rwxr-xr-x
2019-02-06 21:17
localectl
26.41
KB
-rwxr-xr-x
2019-07-21 18:43
localedef
295.69
KB
-rwxr-xr-x
2019-02-06 21:17
logger
43.43
KB
-rwxr-xr-x
2018-03-07 18:29
logname
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
logresolve
10
KB
-rwxr-xr-x
2019-10-13 15:43
look
10.33
KB
-rwxr-xr-x
2017-04-12 11:22
lorder
2.78
KB
-rwxr-xr-x
2017-04-12 11:22
lsattr
10
KB
-rwxr-xr-x
2020-07-25 09:03
lsb_release
3.55
KB
-rwxr-xr-x
2015-08-26 09:44
lscpu
63.2
KB
-rwxr-xr-x
2018-03-07 18:29
lsinitramfs
625
B
-rwxr-xr-x
2017-03-06 22:42
lsipc
71.12
KB
-rwxr-xr-x
2018-03-07 18:29
lslocks
35.16
KB
-rwxr-xr-x
2018-03-07 18:29
lslogins
59.27
KB
-rwxr-xr-x
2018-03-07 18:29
lsns
38.87
KB
-rwxr-xr-x
2018-03-07 18:29
lsof
159.31
KB
-rwxr-xr-x
2015-09-13 21:46
lspci
80.31
KB
-rwxr-xr-x
2016-11-30 06:53
lspgpot
1.06
KB
-rwxr-xr-x
2014-06-25 16:17
lzcat
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
lzcmp
6.48
KB
-rwxr-xr-x
2016-10-08 13:11
lzdiff
6.48
KB
-rwxr-xr-x
2016-10-08 13:11
lzegrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
lzfgrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
lzgrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
lzless
1.76
KB
-rwxr-xr-x
2016-10-08 13:11
lzma
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
lzmainfo
10.38
KB
-rwxr-xr-x
2016-10-08 13:11
lzmore
2.11
KB
-rwxr-xr-x
2016-10-08 13:11
man
104.5
KB
-rwxr-xr-x
2016-12-13 13:10
mandb
126.72
KB
-rwxr-xr-x
2016-12-13 13:10
manpath
30.47
KB
-rwxr-xr-x
2016-12-13 13:10
mapscrn
18.65
KB
-rwxr-xr-x
2016-01-05 16:55
mariabackup
17.34
MB
-rwxr-xr-x
2021-01-31 16:38
mariadb
4.12
MB
-rwxr-xr-x
2021-01-31 16:38
mariadb-service-convert
2.43
KB
-rwxr-xr-x
2021-01-31 16:38
mariadbcheck
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mawk
119.12
KB
-rwxr-xr-x
2012-03-23 20:15
mbstream
3.4
MB
-rwxr-xr-x
2021-01-31 16:38
mcookie
30.79
KB
-rwxr-xr-x
2018-03-07 18:29
md5sum
42.85
KB
-rwxr-xr-x
2017-02-22 12:23
md5sum.textutils
42.85
KB
-rwxr-xr-x
2017-02-22 12:23
mesg
10.45
KB
-rwxr-xr-x
2018-03-07 18:29
migrate-pubring-from-classic-gpg
2.14
KB
-rwxr-xr-x
2018-10-03 00:58
mk_modmap
15.78
KB
-rwxr-xr-x
2016-01-05 16:55
mkfifo
63.04
KB
-rwxr-xr-x
2017-02-22 12:23
mkpasswd
18.57
KB
-rwxr-xr-x
2017-07-27 15:45
mpstat
38.15
KB
-rwxr-xr-x
2017-05-25 20:26
msql2mysql
1.41
KB
-rwxr-xr-x
2021-01-31 16:38
mtr
84.72
KB
-rwsr-xr-x
2017-01-02 18:20
munchlist
31.23
KB
-rwxr-xr-x
2016-03-04 07:59
my_print_defaults
3.39
MB
-rwxr-xr-x
2021-01-31 16:38
myisam_ftdump
3.75
MB
-rwxr-xr-x
2021-01-31 16:38
myisamchk
3.87
MB
-rwxr-xr-x
2021-01-31 16:38
myisamlog
3.73
MB
-rwxr-xr-x
2021-01-31 16:38
myisampack
3.77
MB
-rwxr-xr-x
2021-01-31 16:38
mysql
4.12
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_convert_table_format
4.12
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_embedded
16.03
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_find_rows
3.21
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_fix_extensions
1.22
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_install_db
19.15
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_plugin
3.39
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_secure_installation
12.23
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_setpermission
17.07
KB
-rwxr-xr-x
2021-01-31 16:38
mysql_tzinfo_to_sql
3.39
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_upgrade
3.47
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_waitpid
3.38
MB
-rwxr-xr-x
2021-01-31 16:38
mysql_zap
3.77
KB
-rwxr-xr-x
2021-01-31 16:38
mysqlaccess
109.33
KB
-rwxr-xr-x
2021-01-31 16:38
mysqladmin
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlanalyze
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlbinlog
4.08
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlcheck
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mysqld_multi
23.84
KB
-rwxr-xr-x
2021-01-31 16:38
mysqld_safe
30.79
KB
-rwxr-xr-x
2021-01-31 16:38
mysqld_safe_helper
3.35
MB
-rwxr-xr-x
2021-01-31 16:38
mysqldump
3.99
MB
-rwxr-xr-x
2021-01-31 16:38
mysqldumpslow
8.05
KB
-rwxr-xr-x
2021-01-31 16:38
mysqlhotcopy
34.12
KB
-rwxr-xr-x
2021-01-31 16:38
mysqlimport
3.9
MB
-rwxr-xr-x
2021-01-31 16:38
mysqloptimize
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlrepair
3.91
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlreport
50.03
KB
-rwxr-xr-x
2020-10-12 17:40
mysqlshow
3.9
MB
-rwxr-xr-x
2021-01-31 16:38
mysqlslap
3.92
MB
-rwxr-xr-x
2021-01-31 16:38
mytop
63.3
KB
-rwxr-xr-x
2021-01-31 16:38
namei
26.66
KB
-rwxr-xr-x
2018-03-07 18:29
nawk
646.72
KB
-rwxr-xr-x
2017-01-25 16:06
ncal
29.21
KB
-rwxr-xr-x
2017-04-12 11:22
neqn
908
B
-rwxr-xr-x
2016-12-13 13:06
newgrp
39.37
KB
-rwsr-xr-x
2017-05-17 11:59
ngettext
34.7
KB
-rwxr-xr-x
2019-08-30 23:30
nice
34.76
KB
-rwxr-xr-x
2017-02-22 12:23
nl
38.91
KB
-rwxr-xr-x
2017-02-22 12:23
nohup
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
nproc
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
nroff
3.25
KB
-rwxr-xr-x
2016-12-13 13:06
nsenter
30.95
KB
-rwxr-xr-x
2018-03-07 18:29
nstat
22.67
KB
-rwxr-xr-x
2017-11-24 09:22
numfmt
58.91
KB
-rwxr-xr-x
2017-02-22 12:23
od
66.91
KB
-rwxr-xr-x
2017-02-22 12:23
on_ac_power
2.2
KB
-rwxr-xr-x
2009-12-02 08:57
openssl
639.48
KB
-rwxr-xr-x
2020-12-11 09:22
os-prober
4.44
KB
-rwxr-xr-x
2017-01-31 03:56
pager
161.82
KB
-rwxr-xr-x
2016-02-28 11:28
paperconf
10.34
KB
-rwxr-xr-x
2016-11-11 11:28
partx
83.63
KB
-rwxr-xr-x
2018-03-07 18:29
passwd
58.28
KB
-rwsr-xr-x
2017-05-17 11:59
paste
34.79
KB
-rwxr-xr-x
2017-02-22 12:23
pasteurize
388
B
-rwxr-xr-x
2016-09-23 17:38
pathchk
30.76
KB
-rwxr-xr-x
2017-02-22 12:23
pbr
152
B
-rwxr-xr-x
2016-09-21 14:14
pcimodules
14.59
KB
-rwxr-xr-x
2016-11-30 06:53
pdb
45.02
KB
-rwxr-xr-x
2020-08-22 10:03
pdb2.7
45.02
KB
-rwxr-xr-x
2020-08-22 10:03
pdb3
59.7
KB
-rwxr-xr-x
2020-11-18 21:09
pdb3.5
59.7
KB
-rwxr-xr-x
2020-11-18 21:09
pdf2dsc
698
B
-rwxr-xr-x
2020-08-20 14:04
pdf2ps
909
B
-rwxr-xr-x
2020-08-20 14:04
peekfd
10.52
KB
-rwxr-xr-x
2015-08-17 13:18
perf
528
B
-rwxr-xr-x
2016-09-16 23:34
perl
1.93
MB
-rwxr-xr-x
2020-06-20 17:33
perl5.24-x86_64-linux-gnu
10.24
KB
-rwxr-xr-x
2020-06-20 17:33
perl5.24.1
1.93
MB
-rwxr-xr-x
2020-06-20 17:33
perlbug
44.46
KB
-rwxr-xr-x
2020-06-20 17:33
perldoc
125
B
-rwxr-xr-x
2020-06-20 17:33
perlivp
10.61
KB
-rwxr-xr-x
2020-06-20 17:33
perlthanks
44.46
KB
-rwxr-xr-x
2020-06-20 17:33
perror
3.54
MB
-rwxr-xr-x
2021-01-31 16:38
pf2afm
498
B
-rwxr-xr-x
2020-08-20 14:04
pfbtopfa
516
B
-rwxr-xr-x
2020-08-20 14:04
pg
38.89
KB
-rwxr-xr-x
2018-03-07 18:29
pgrep
26.09
KB
-rwxr-xr-x
2018-05-17 10:56
phar
14.54
KB
-rwxr-xr-x
2021-02-12 14:49
phar.phar
14.54
KB
-rwxr-xr-x
2021-02-12 14:49
phar.phar7.0
14.48
KB
-rwxr-xr-x
2020-10-06 17:08
phar.phar7.4
14.54
KB
-rwxr-xr-x
2021-02-12 14:49
phar7.0
14.48
KB
-rwxr-xr-x
2020-10-06 17:08
phar7.4
14.54
KB
-rwxr-xr-x
2021-02-12 14:49
phar7.4.phar
14.54
KB
-rwxr-xr-x
2021-02-12 14:49
php
4.46
MB
-rwxr-xr-x
2021-02-12 14:49
php7.0
4.19
MB
-rwxr-xr-x
2020-10-06 17:08
php7.4
4.46
MB
-rwxr-xr-x
2021-02-12 14:49
pic
196.03
KB
-rwxr-xr-x
2016-12-13 13:06
pico
220.04
KB
-rwxr-xr-x
2017-01-11 02:10
piconv
8.16
KB
-rwxr-xr-x
2020-06-20 17:33
pidstat
54.15
KB
-rwxr-xr-x
2017-05-25 20:26
pinentry
54.46
KB
-rwxr-xr-x
2017-02-06 08:56
pinentry-curses
54.46
KB
-rwxr-xr-x
2017-02-06 08:56
pinky
38.95
KB
-rwxr-xr-x
2017-02-22 12:23
pkill
26.09
KB
-rwxr-xr-x
2018-05-17 10:56
pl2pm
4.42
KB
-rwxr-xr-x
2020-06-20 17:33
pldd
14.57
KB
-rwxr-xr-x
2019-02-06 21:17
pmap
30.09
KB
-rwxr-xr-x
2018-05-17 10:56
pod2html
4.04
KB
-rwxr-xr-x
2020-06-20 17:33
pod2man
13.84
KB
-rwxr-xr-x
2020-06-20 17:33
pod2text
10.72
KB
-rwxr-xr-x
2020-06-20 17:33
pod2usage
3.86
KB
-rwxr-xr-x
2020-06-20 17:33
podchecker
3.61
KB
-rwxr-xr-x
2020-06-20 17:33
podselect
2.47
KB
-rwxr-xr-x
2020-06-20 17:33
pphs
404
B
-rwxr-xr-x
2020-08-20 14:04
pr
75.01
KB
-rwxr-xr-x
2017-02-22 12:23
preconv
42.2
KB
-rwxr-xr-x
2016-12-13 13:06
prename
3.13
KB
-rwxr-xr-x
2020-06-20 17:33
print
17.74
KB
-rwxr-xr-x
2016-05-01 11:20
printafm
395
B
-rwxr-xr-x
2020-08-20 14:04
printenv
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
printerbanner
18.28
KB
-rwxr-xr-x
2017-04-12 11:22
printf
50.79
KB
-rwxr-xr-x
2017-02-22 12:23
prlimit
31.38
KB
-rwxr-xr-x
2018-03-07 18:29
procan
71.74
KB
-rwxr-xr-x
2017-07-14 13:52
prove
13.27
KB
-rwxr-xr-x
2020-06-20 17:33
prtstat
14.42
KB
-rwxr-xr-x
2015-08-17 13:18
ps2ascii
631
B
-rwxr-xr-x
2020-08-20 14:04
ps2epsi
2.69
KB
-rwxr-xr-x
2020-08-20 14:04
ps2pdf
272
B
-rwxr-xr-x
2020-08-20 14:04
ps2pdf12
215
B
-rwxr-xr-x
2020-08-20 14:04
ps2pdf13
215
B
-rwxr-xr-x
2020-08-20 14:04
ps2pdf14
215
B
-rwxr-xr-x
2020-08-20 14:04
ps2pdfwr
1.07
KB
-rwxr-xr-x
2020-08-20 14:04
ps2ps
647
B
-rwxr-xr-x
2020-08-20 14:04
ps2ps2
669
B
-rwxr-xr-x
2020-08-20 14:04
ps2txt
631
B
-rwxr-xr-x
2020-08-20 14:04
psfaddtable
18.38
KB
-rwxr-xr-x
2016-01-05 16:55
psfgettable
18.38
KB
-rwxr-xr-x
2016-01-05 16:55
psfstriptable
18.38
KB
-rwxr-xr-x
2016-01-05 16:55
psfxtable
18.38
KB
-rwxr-xr-x
2016-01-05 16:55
pstree
27.49
KB
-rwxr-xr-x
2015-08-17 13:18
pstree.x11
27.49
KB
-rwxr-xr-x
2015-08-17 13:18
pstruct
35.89
KB
-rwxr-xr-x
2020-06-20 17:33
ptar
3.48
KB
-rwxr-xr-x
2020-06-20 17:33
ptardiff
2.57
KB
-rwxr-xr-x
2020-06-20 17:33
ptargrep
4.29
KB
-rwxr-xr-x
2020-06-20 17:33
ptx
71.01
KB
-rwxr-xr-x
2017-02-22 12:23
pwdx
10.07
KB
-rwxr-xr-x
2018-05-17 10:56
py3clean
7.62
KB
-rwxr-xr-x
2017-01-20 10:03
py3compile
11.83
KB
-rwxr-xr-x
2017-01-20 10:03
py3versions
11.44
KB
-rwxr-xr-x
2017-01-20 10:03
pybuild
21.75
KB
-rwxr-xr-x
2017-01-25 14:47
pyclean
4.03
KB
-rwxr-xr-x
2017-01-24 13:00
pycompile
11.62
KB
-rwxr-xr-x
2017-01-24 13:00
pydoc
79
B
-rwxr-xr-x
2020-08-22 10:03
pydoc2.7
79
B
-rwxr-xr-x
2020-08-22 10:03
pydoc3
79
B
-rwxr-xr-x
2020-11-18 21:09
pydoc3.5
79
B
-rwxr-xr-x
2020-11-18 21:09
pygettext
21.58
KB
-rwxr-xr-x
2020-08-22 10:03
pygettext2.7
21.58
KB
-rwxr-xr-x
2020-08-22 10:03
pygettext3
21.73
KB
-rwxr-xr-x
2020-11-18 21:09
pygettext3.5
21.73
KB
-rwxr-xr-x
2020-11-18 21:09
python
3.62
MB
-rwxr-xr-x
2020-08-22 10:03
python2
3.62
MB
-rwxr-xr-x
2020-08-22 10:03
python2.7
3.62
MB
-rwxr-xr-x
2020-08-22 10:03
python3
4.54
MB
-rwxr-xr-x
2020-11-18 21:09
python3-futurize
384
B
-rwxr-xr-x
2016-09-23 17:38
python3-pasteurize
388
B
-rwxr-xr-x
2016-09-23 17:38
python3-pbr
152
B
-rwxr-xr-x
2016-09-21 14:14
python3.5
4.54
MB
-rwxr-xr-x
2020-11-18 21:09
python3.5m
4.54
MB
-rwxr-xr-x
2020-11-18 21:09
python3m
4.54
MB
-rwxr-xr-x
2020-11-18 21:09
pyversions
14.75
KB
-rwxr-xr-x
2017-01-24 13:00
querybts
10.59
KB
-rwxr-xr-x
2019-08-29 14:19
rcp
86.14
KB
-rwxr-xr-x
2019-07-15 13:32
realpath
46.82
KB
-rwxr-xr-x
2017-02-22 12:23
rename
3.1
KB
-rwxr-xr-x
2015-06-04 22:55
rename.ul
14.48
KB
-rwxr-xr-x
2018-03-07 18:29
renice
10.36
KB
-rwxr-xr-x
2018-03-07 18:29
replace
3.36
MB
-rwxr-xr-x
2021-01-31 16:38
report-hw
2.05
KB
-rwxr-xr-x
2015-12-30 04:01
reportbug
103.63
KB
-rwxr-xr-x
2019-08-29 14:19
reset
22
KB
-rwxr-xr-x
2017-12-28 09:47
resizecons
18.65
KB
-rwxr-xr-x
2016-01-05 16:55
resizepart
38.86
KB
-rwxr-xr-x
2018-03-07 18:29
resolve_stack_dump
3.38
MB
-rwxr-xr-x
2021-01-31 16:38
resolveip
3.38
MB
-rwxr-xr-x
2021-01-31 16:38
rev
10.45
KB
-rwxr-xr-x
2018-03-07 18:29
rgrep
30
B
-rwxr-xr-x
2016-11-28 21:59
rlogin
714.86
KB
-rwxr-xr-x
2019-07-15 13:32
rotatelogs
18.07
KB
-rwxr-xr-x
2019-10-13 15:43
routef
173
B
-rwxr-xr-x
2017-11-24 09:22
routel
1.23
KB
-rwxr-xr-x
2017-11-24 09:22
rsh
714.86
KB
-rwxr-xr-x
2019-07-15 13:32
rsync
472.3
KB
-rwxr-xr-x
2019-03-15 10:39
rtstat
18.8
KB
-rwxr-xr-x
2017-11-24 09:22
run-mailcap
17.74
KB
-rwxr-xr-x
2016-05-01 11:20
runcon
34.85
KB
-rwxr-xr-x
2017-02-22 12:23
rview
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
rvim
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
sadf
282.37
KB
-rwxr-xr-x
2017-05-25 20:26
sar
109.7
KB
-rwxr-xr-x
2017-05-25 20:26
sar.sysstat
109.7
KB
-rwxr-xr-x
2017-05-25 20:26
savelog
10.22
KB
-rwxr-xr-x
2017-04-02 17:10
scp
86.14
KB
-rwxr-xr-x
2019-07-15 13:32
screendump
10.34
KB
-rwxr-xr-x
2016-01-05 16:55
script
22.73
KB
-rwxr-xr-x
2018-03-07 18:29
scriptreplay
22.63
KB
-rwxr-xr-x
2018-03-07 18:29
sdiff
50.85
KB
-rwxr-xr-x
2017-01-09 22:55
see
17.74
KB
-rwxr-xr-x
2016-05-01 11:20
select-default-iwrap
474
B
-rwxr-xr-x
2016-10-10 09:58
select-editor
1.19
KB
-rwxr-xr-x
2017-12-20 13:39
sensible-browser
1.11
KB
-rwxr-xr-x
2017-12-20 13:39
sensible-editor
1.08
KB
-rwxr-xr-x
2017-12-20 13:39
sensible-pager
288
B
-rwxr-xr-x
2017-12-20 13:39
seq
46.82
KB
-rwxr-xr-x
2017-02-22 12:23
setarch
18.73
KB
-rwxr-xr-x
2018-03-07 18:29
setkeycodes
10.37
KB
-rwxr-xr-x
2016-01-05 16:55
setleds
14.35
KB
-rwxr-xr-x
2016-01-05 16:55
setlogcons
10.37
KB
-rwxr-xr-x
2016-01-05 16:55
setmetamode
10.4
KB
-rwxr-xr-x
2016-01-05 16:55
setpci
22.54
KB
-rwxr-xr-x
2016-11-30 06:53
setsid
10.45
KB
-rwxr-xr-x
2018-03-07 18:29
setterm
38.68
KB
-rwxr-xr-x
2018-03-07 18:29
setvtrgb
10.46
KB
-rwxr-xr-x
2016-01-05 16:55
sftp
134.36
KB
-rwxr-xr-x
2019-07-15 13:32
sg
39.37
KB
-rwsr-xr-x
2017-05-17 11:59
sha1sum
46.85
KB
-rwxr-xr-x
2017-02-22 12:23
sha224sum
54.85
KB
-rwxr-xr-x
2017-02-22 12:23
sha256sum
54.85
KB
-rwxr-xr-x
2017-02-22 12:23
sha384sum
58.85
KB
-rwxr-xr-x
2017-02-22 12:23
sha512sum
58.85
KB
-rwxr-xr-x
2017-02-22 12:23
shasum
9.15
KB
-rwxr-xr-x
2020-06-20 17:33
showconsolefont
18.45
KB
-rwxr-xr-x
2016-01-05 16:55
showkey
14.63
KB
-rwxr-xr-x
2016-01-05 16:55
shred
59.01
KB
-rwxr-xr-x
2017-02-22 12:23
shuf
54.91
KB
-rwxr-xr-x
2017-02-22 12:23
skill
26.08
KB
-rwxr-xr-x
2018-05-17 10:56
slabtop
18.08
KB
-rwxr-xr-x
2018-05-17 10:56
slogin
714.86
KB
-rwxr-xr-x
2019-07-15 13:32
snice
26.08
KB
-rwxr-xr-x
2018-05-17 10:56
socat
369.47
KB
-rwxr-xr-x
2017-07-14 13:52
soelim
30.2
KB
-rwxr-xr-x
2016-12-13 13:06
sort
107.52
KB
-rwxr-xr-x
2017-02-22 12:23
splain
18.37
KB
-rwxr-xr-x
2020-06-20 17:33
split
55.38
KB
-rwxr-xr-x
2017-02-22 12:23
splitfont
10.25
KB
-rwxr-xr-x
2016-01-05 16:55
sq
5.99
KB
-rwxr-xr-x
2016-03-04 07:59
ssh
714.86
KB
-rwxr-xr-x
2019-07-15 13:32
ssh-add
330.21
KB
-rwxr-xr-x
2019-07-15 13:32
ssh-agent
350.22
KB
-rwxr-sr-x
2019-07-15 13:32
ssh-argv0
1.42
KB
-rwxr-xr-x
2019-03-01 16:19
ssh-copy-id
10.13
KB
-rwxr-xr-x
2016-12-19 04:59
ssh-keygen
390.23
KB
-rwxr-xr-x
2019-07-15 13:32
ssh-keyscan
406.23
KB
-rwxr-xr-x
2019-07-15 13:32
stat
83.1
KB
-rwxr-xr-x
2017-02-22 12:23
stdbuf
46.82
KB
-rwxr-xr-x
2017-02-22 12:23
sudo
137.64
KB
-rwsr-xr-x
2021-01-23 09:10
sudoedit
137.64
KB
-rwsr-xr-x
2021-01-23 09:10
sudoreplay
46.59
KB
-rwxr-xr-x
2021-01-23 09:10
sum
38.83
KB
-rwxr-xr-x
2017-02-22 12:23
symcryptrun
110.6
KB
-rwxr-xr-x
2019-02-07 20:57
systemd-analyze
1010.6
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-cat
10.34
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-cgls
14.34
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-cgtop
30.44
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-delta
22.41
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-detect-virt
10.33
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-mount
30.35
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-path
10.33
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-resolve
78.34
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-run
38.34
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-socket-activate
22.34
KB
-rwxr-xr-x
2019-07-21 18:43
systemd-stdio-bridge
14.34
KB
-rwxr-xr-x
2019-07-21 18:43
tabs
13.99
KB
-rwxr-xr-x
2017-12-28 09:47
tac
38.82
KB
-rwxr-xr-x
2017-02-22 12:23
tail
66.98
KB
-rwxr-xr-x
2017-02-22 12:23
tapestat
34.13
KB
-rwxr-xr-x
2017-05-25 20:26
tasksel
16.1
KB
-rwxr-xr-x
2016-12-24 12:46
taskset
30.75
KB
-rwxr-xr-x
2018-03-07 18:29
tbl
118.2
KB
-rwxr-xr-x
2016-12-13 13:06
tee
34.82
KB
-rwxr-xr-x
2017-02-22 12:23
telnet
104.42
KB
-rwxr-xr-x
2016-11-07 18:06
telnet.netkit
104.42
KB
-rwxr-xr-x
2016-11-07 18:06
test
46.79
KB
-rwxr-xr-x
2017-02-22 12:23
tic
78.11
KB
-rwxr-xr-x
2017-12-28 09:47
timedatectl
22.34
KB
-rwxr-xr-x
2019-07-21 18:43
timeout
39.35
KB
-rwxr-xr-x
2017-02-22 12:23
tload
14.09
KB
-rwxr-xr-x
2018-05-17 10:56
toe
13.99
KB
-rwxr-xr-x
2017-12-28 09:47
top
105.77
KB
-rwxr-xr-x
2018-05-17 10:56
touch
90.98
KB
-rwxr-xr-x
2017-02-22 12:23
tput
18.02
KB
-rwxr-xr-x
2017-12-28 09:47
tr
46.79
KB
-rwxr-xr-x
2017-02-22 12:23
traceproto
2.82
KB
-rwxr-xr-x
2016-08-29 15:45
traceproto.db
2.82
KB
-rwxr-xr-x
2016-08-29 15:45
traceroute
67.16
KB
-rwxr-xr-x
2016-08-29 15:45
traceroute-nanog
1.58
KB
-rwxr-xr-x
2016-08-29 15:45
traceroute.db
67.16
KB
-rwxr-xr-x
2016-08-29 15:45
traceroute6
67.16
KB
-rwxr-xr-x
2016-08-29 15:45
traceroute6.db
67.16
KB
-rwxr-xr-x
2016-08-29 15:45
troff
695.34
KB
-rwxr-xr-x
2016-12-13 13:06
truncate
38.76
KB
-rwxr-xr-x
2017-02-22 12:23
tryaffix
4.8
KB
-rwxr-xr-x
2016-03-04 07:59
tset
22
KB
-rwxr-xr-x
2017-12-28 09:47
tsort
34.76
KB
-rwxr-xr-x
2017-02-22 12:23
tty
30.76
KB
-rwxr-xr-x
2017-02-22 12:23
tzselect
14.83
KB
-rwxr-xr-x
2019-02-06 21:17
ucf
39.68
KB
-rwxr-xr-x
2016-03-16 20:58
ucfq
18.91
KB
-rwxr-xr-x
2016-03-16 20:58
ucfr
10.47
KB
-rwxr-xr-x
2016-03-16 20:58
ul
14.34
KB
-rwxr-xr-x
2017-04-12 11:22
unexpand
34.82
KB
-rwxr-xr-x
2017-02-22 12:23
unicode_stop
530
B
-rwxr-xr-x
2016-01-05 16:55
uniq
42.85
KB
-rwxr-xr-x
2017-02-22 12:23
unlink
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
unlzma
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
unmkinitramfs
2.79
KB
-rwxr-xr-x
2017-03-06 22:42
unshare
18.82
KB
-rwxr-xr-x
2018-03-07 18:29
unsq
9.99
KB
-rwxr-xr-x
2016-03-04 07:59
unxz
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
update-alternatives
46.01
KB
-rwxr-xr-x
2018-06-26 10:28
update-mime-database
672
B
-rwxr-xr-x
2018-03-14 18:01
update-mime-database.real
51.23
KB
-rwxr-xr-x
2018-03-14 18:01
uptime
10.07
KB
-rwxr-xr-x
2018-05-17 10:56
users
30.79
KB
-rwxr-xr-x
2017-02-22 12:23
utmpdump
22.71
KB
-rwxr-xr-x
2018-03-07 18:29
vi
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
view
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
vim
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
vim.basic
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
vim.tiny
1.01
MB
-rwxr-xr-x
2019-06-21 04:10
vimdiff
2.3
MB
-rwxr-xr-x
2019-06-21 04:10
vimtutor
2.05
KB
-rwxr-xr-x
2019-06-21 04:10
vmstat
30.09
KB
-rwxr-xr-x
2018-05-17 10:56
w
18.07
KB
-rwxr-xr-x
2018-05-17 10:56
w.procps
18.07
KB
-rwxr-xr-x
2018-05-17 10:56
wall
26.8
KB
-rwxr-sr-x
2018-03-07 18:29
watch
22.41
KB
-rwxr-xr-x
2018-05-17 10:56
watchgnupg
13.99
KB
-rwxr-xr-x
2019-02-07 20:57
wc
42.86
KB
-rwxr-xr-x
2017-02-22 12:23
wget
479.56
KB
-rwxr-xr-x
2019-04-05 13:05
whatis
46.98
KB
-rwxr-xr-x
2016-12-13 13:10
whereis
27.09
KB
-rwxr-xr-x
2018-03-07 18:29
which
946
B
-rwxr-xr-x
2017-04-02 17:10
whiptail
26.77
KB
-rwxr-xr-x
2016-10-15 08:00
who
50.95
KB
-rwxr-xr-x
2017-02-22 12:23
whoami
30.76
KB
-rwxr-xr-x
2017-02-22 12:23
whois
149.18
KB
-rwxr-xr-x
2017-07-27 15:45
write
14.42
KB
-rwxr-sr-x
2017-04-12 11:22
wsrep_sst_common
10.51
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_mariabackup
36.97
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_mysqldump
7.69
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_rsync
14.96
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_rsync_wan
14.96
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_xtrabackup
20.77
KB
-rwxr-xr-x
2021-01-31 16:38
wsrep_sst_xtrabackup-v2
40.73
KB
-rwxr-xr-x
2021-01-31 16:38
x86_64
18.73
KB
-rwxr-xr-x
2018-03-07 18:29
xargs
66.21
KB
-rwxr-xr-x
2017-02-18 15:37
xauth
47.47
KB
-rwxr-xr-x
2014-07-13 08:34
xdg-user-dir
234
B
-rwxr-xr-x
2014-09-19 09:17
xdg-user-dirs-update
18.59
KB
-rwxr-xr-x
2014-09-19 09:17
xsubpp
5.04
KB
-rwxr-xr-x
2020-06-20 17:33
xxd
18.12
KB
-rwxr-xr-x
2019-06-21 04:10
xz
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
xzcat
75.38
KB
-rwxr-xr-x
2016-10-08 13:11
xzcmp
6.48
KB
-rwxr-xr-x
2016-10-08 13:11
xzdiff
6.48
KB
-rwxr-xr-x
2016-10-08 13:11
xzegrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
xzfgrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
xzgrep
5.5
KB
-rwxr-xr-x
2016-10-08 13:11
xzless
1.76
KB
-rwxr-xr-x
2016-10-08 13:11
xzmore
2.11
KB
-rwxr-xr-x
2016-10-08 13:11
yes
30.73
KB
-rwxr-xr-x
2017-02-22 12:23
zdump
14.42
KB
-rwxr-xr-x
2019-02-06 21:17
zipdetails
47.36
KB
-rwxr-xr-x
2020-06-20 17:33
Save
Rename
#!/bin/sh # # $Id: munchlist.X,v 1.70 2015-02-08 00:35:41-08 geoff Exp $ # # Copyright 1987, 1988, 1989, 1992, 1993, 1999, 2001, 2005, Geoff Kuenning, # Claremont, CA. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All modifications to the source code must be clearly marked as # such. Binary redistributions based on modified source code # must be clearly marked as modified versions in the documentation # and/or other materials provided with the distribution. # 4. The code that causes the 'ispell -v' command to display a prominent # link to the official ispell Web site may not be removed. # 5. The name of Geoff Kuenning may not be used to endorse or promote # products derived from this software without specific prior # written permission. # # THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL GEOFF KUENNING OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Given a list of words for ispell, generate a reduced list # in which all possible affixes have been collapsed. The reduced # list will match the same list as the original. # # Usage: # # munchlist [-l lang] [-c lang] [-s hashfile] [-D] [-w chars] [-v] \ # [file] ... # # Options: # # -l lang Specifies the language table to be used. The default # is "$LIBDIR/default.aff". # -c lang Specifies "conversion" language table. If this option is # given, the input file(s) will be assumed to be described by # this table, rather than the table given in the -l option. # This may be used to convert between incompatible language # tables. (When in doubt, use this option -- it doesn't # hurt, and it may save you from creating a dictionary that has # illegal words in it). The default is no conversion. # -T suff Specifies that the source word lists are in the format # of a "suff"-suffixed file, rather than in the # canonical form. For example, "-T tex" specifies that # string characters in the word lists are in TeX format. # The string character conversions are taken from the language # table specified by the "-l" switch. # -s Remove any words that are already covered by the # dictionary in 'hashfile'. The words will be removed # only if all affixes are covered. This option should not be # specified when the main dictionary is being munched. # 'Hashfile' must have been created with the language # table given in the -l option, but this is not checked. # -D Leave temporary files for debugging purposes # -w Passed on to ispell (specify chars that are part of a word) # Unfortunately, special characters must be quoted twice # rather than once when invoking this script. Also, since # buildhash doesn't accept this option, the final ispell -l # step ignores it, making it somewhat less than useful. # -v Report progress to stderr. # # The given input files are merged, then processed by 'ispell -c' # to generate possible affix lists; these are then combined # and reduced. The final result is written to standard output. # # For portability to older systems, I have avoided getopt. # # Geoff Kuenning # 2/28/87 # # $Log: munchlist.X,v $ # Revision 1.70 2015-02-08 00:35:41-08 geoff # Be a bit more paranoid about creating temporary files. Fix a problem # with detecting a new-style sort that refuses to be backwards # compatible (and yes, it's still cretinism to break backwards # compatibility--but I have to put up with the cretins). # # Revision 1.69 2005/04/28 14:46:51 geoff # Remove references to the now-obsolete count file. # # Revision 1.68 2005/04/27 01:18:34 geoff # Work around idiotic POSIX incompatibilities in sort. Add secure # temp-file handling. # # Revision 1.67 2005/04/14 23:11:36 geoff # Pass the -w switch to icombine. # # Revision 1.66 2005/04/14 21:25:52 geoff # Make the temporary-file handling safer (using mktemp, if it exists). # # Revision 1.65 2005/04/14 14:39:33 geoff # Use /tmp as the default temp directory # # Revision 1.64 2005/04/14 14:38:23 geoff # Update license. Protect against modernized (i.e., incompatible) and # internationalized sort commands. Change the debugging names of the # minimal-affixes count and stat files. # # Revision 1.63 2002/06/20 23:46:16 geoff # Add yet more locale definitions so that we won't run into bugs caused # by sorting inconsistencies. # # Revision 1.62 2001/09/06 00:30:28 geoff # Many changes from Eli Zaretskii to support DJGPP compilation. # # Revision 1.61 2001/07/25 21:51:46 geoff # Minor license update. # # Revision 1.60 2001/07/23 20:24:04 geoff # Update the copyright and the license. # # Revision 1.59 2001/06/07 08:02:18 geoff # Fix a copule of typos in comments. # # Revision 1.58 2000/11/14 07:27:04 geoff # Don't generate an extra dot when attempting to preserve the count # files in -D mode. # # Revision 1.57 2000/10/06 23:59:48 geoff # Don't assume dot is in the path # # Revision 1.56 1999/01/07 01:22:42 geoff # Update the copyright. # # Revision 1.55 1997/12/02 06:25:01 geoff # Start the cross-expansions loop count at 1, not zero. # # Revision 1.54 1997/12/01 00:53:52 geoff # Abort the munchlist cross-product loop if it goes over 100 passes. # # Revision 1.53 1995/01/08 23:23:36 geoff # Support variable hashfile suffixes for DOS purposes. # # Revision 1.52 1994/12/27 23:08:46 geoff # Dynamically determine how to pass backslashes to 'tr' so that it'll # work on any machine. Define LC_CTYPE to work around yet more # internationalized sort programs. Work around a bug in GNU uniq that # uses the wrong separator between counts and duplicated lines. # # Revision 1.51 1994/11/21 07:02:54 geoff # Correctly quote the arguments to 'tr' when detecting systems with # unsigned sorts. Be sure to provide a zero exit status on all systems, # even if MUNCHDEBUG is not set. # # Revision 1.50 1994/10/25 05:46:05 geoff # Export values for LANG and LOCALE in an attempt to override some # stupidly-internationalized sort programs. # # Revision 1.49 1994/10/04 03:51:30 geoff # Add the MUNCHMAIL feature. If the MUNCHMAIL environment variable is # set to an email address, debugging information about the munchlist run # will automatically be collected and mailed to that address. # # Revision 1.48 1994/05/17 06:32:06 geoff # Don't look for affix tables in LIBDIR if the name contains a slash # # Revision 1.47 1994/04/27 02:50:48 geoff # Fix some cosmetic flaws in the verbose-mode messages. # # Revision 1.46 1994/01/25 07:11:59 geoff # Get rid of all old RCS log lines in preparation for the 3.1 release. # # LIBDIR=/usr/lib/ispell TDIR=${TMPDIR-/tmp} MUNCHDIR=`mktemp -d ${TDIR}/munchXXXXXXXXXX 2>/dev/null` || { echo "$0: Failed to create temporary directory, exiting..." 1>&2; exit 1; } TMP=${MUNCHDIR}/munch. MAILDEBUGDIR=${MUNCHDIR-/tmp} if [ "X$MUNCHMAIL" != X ] then exec 2> ${MAILDEBUGDIR}/munchlist.mail echo "munchlist $*" 1>&2 set -vx fi SORTTMP="-T ${TDIR}" # !!SORTTMP!! DBDIR=${MUNCHDEBUGDIR-$MAILDEBUGDIR} # Detect MS-DOS systems and arrange to use their silly suffix system if [ -z "$COMSPEC$ComSpec" ] then EXE="" else EXE=".exe" fi # # Set up some program names. This prefers the versions that are in # the same directory as munchlist was run from; if that can't be # figured out, it prefers local versions and finally ones chosen from # $PATH. # # This code could be simplified by using the dirname command, but it's # not available everywhere. For the same reason, we use -r rather than # -x to test for executable files. # case "$0" in */*) bindir=`expr "$0" : '\(.*\)/[^/]*'` ;; *) bindir='.' ;; esac if [ -r $bindir/buildhash$EXE ] then BUILDHASH=$bindir/buildhash$EXE elif [ -r ./buildhash$EXE ] then BUILDHASH=./buildhash$EXE else BUILDHASH=buildhash fi if [ -r $bindir/icombine$EXE ] then COMBINE=$bindir/icombine$EXE elif [ -r ./icombine$EXE ] then COMBINE=./icombine$EXE else COMBINE=icombine fi if [ -r $bindir/ijoin$EXE ] then JOIN=$bindir/ijoin$EXE elif [ -r ./ijoin$EXE ] then JOIN=./ijoin$EXE else JOIN=ijoin fi if [ -r $bindir/ispell$EXE ] then ISPELL=$bindir/ispell$EXE elif [ -r ./ispell$EXE ] then ISPELL=./ispell$EXE else ISPELL=ispell fi # In one of the most incredibly stupid decisions of all time, some # genius decided to break backwards compatibility by "deprecating" the # old-style sort switches even though it was trivial to recognize both # styles. The result is that that thousands of people (like me) will # have to rewrite shell scripts to tolerate that stupidity. (It's not # that the new syntax is bad--it's definitely easier to understand. # But that doesn't excuse breaking compatibility.) # CRETIN_SORT=true # # The following is necessary so that some internationalized versions of # sort(1) don't confuse things by sorting into a nonstandard order. # LANG=C LOCALE=C LC_ALL=C LC_COLLATE=C LC_CTYPE=C export LANG LOCALE LC_COLLATE LC_CTYPE # # The following aren't strictly necessary, but I've been made paranoid # by problems with the stuff above. It can't hurt to set them to a # sensible value. LC_MESSAGES=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C export LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME debug=no dictopt= langtabs=${LIBDIR}/default.aff convtabs= strip=no icflags= verbose=false # The following value of "wchars" is necessary to prevent ispell from # receiving a null argument if -w is not specified. As long as "A" is # a member of the existing character set, ispell will ignore the argument. wchars=-wA while [ $# != 0 ] do case "$1" in -l) case "$2" in */*) langtabs=$2 ;; *) if [ -r "$2" ] then langtabs="$2" else langtabs="${LIBDIR}/$2" fi ;; esac if [ ! -r "$langtabs" ] then echo "Can't open language table '$2'" 1>&2 rm -rf $MUNCHDIR exit 1 fi shift ;; -c) if [ -r "$2" ] then convtabs="$2" elif [ -r "${LIBDIR}/$2" ] then convtabs="${LIBDIR}/$2" else echo "Can't open conversion language table '$2'" 1>&2 rm -rf $MUNCHDIR exit 1 fi shift ;; -s) dictopt="-d $2" strip=yes shift ;; -D) debug=yes ;; -T) icflags="-T $2" shift ;; -v) verbose=true ;; -w) wchars="-w$2" shift ;; --) shift break ;; -) break ;; -*) echo 'Usage: munchlist [-l lang] [-c lang] [-T suff] [-s hashfile] [-D] [-w chars] [-v] [file] ...' \ 1>&2 rm -rf $MUNCHDIR exit 2 ;; *) break ;; esac shift done if [ "X$MUNCHMAIL" != X ] then verbose=true debug=yes fi trap "rm -rf $MUNCHDIR; exit 1" 1 2 13 15 # # Names of temporary files. This is just to make the code a little easier # to read. # EXPANDEDINPUT=${TMP}a STRIPPEDINPUT=${TMP}b CRUNCHEDINPUT=${TMP}c PRODUCTLIST=${TMP}d EXPANDEDPAIRS=${TMP}e LEGALFLAGLIST=${TMP}f JOINEDPAIRS=${TMP}g MINIMALAFFIXES=${TMP}h CROSSROOTS=${TMP}i CROSSEXPANDED=${TMP}j CROSSPAIRS=${TMP}k CROSSILLEGAL=${TMP}l ILLEGALCOMBOS=${TMP}m FAKEDICT=${TMP}n # Ispell insists that hash files have a ".hash" suffix FAKEHASH=${TMP}o.hash AWKSCRIPT=${TMP}p # If the file exists than we should exit with error ERRORFLAGFILE=${TMP}z if [ "$debug" = yes ] then touch $EXPANDEDINPUT $STRIPPEDINPUT $CRUNCHEDINPUT $PRODUCTLIST \ $EXPANDEDPAIRS $LEGALFLAGLIST $JOINEDPAIRS $MINIMALAFFIXES \ $CROSSROOTS $CROSSEXPANDED $CROSSPAIRS $CROSSILLEGAL $ILLEGALCOMBOS \ $FAKEDICT $FAKEHASH $AWKSCRIPT rm -f ${DBDIR}/EXPANDEDINPUT ${DBDIR}/STRIPPEDINPUT \ ${DBDIR}/CRUNCHEDINPUT ${DBDIR}/PRODUCTLIST ${DBDIR}/EXPANDEDPAIRS \ ${DBDIR}/LEGALFLAGLIST ${DBDIR}/JOINEDPAIRS ${DBDIR}/MINIMALAFFIXES \ ${DBDIR}/CROSSROOTS ${DBDIR}/CROSSEXPANDED ${DBDIR}/CROSSPAIRS \ ${DBDIR}/CROSSILLEGAL ${DBDIR}/ILLEGALCOMBOS ${DBDIR}/FAKEDICT \ ${DBDIR}/FAKEHASH.hash ${DBDIR}/AWKSCRIPT \ ${DBDIR}/CROSSROOTS.[0-9]* ${DBDIR}/CROSSEXP.[0-9]* \ ${DBDIR}/CROSSPAIRS.[0-9]* ${DBDIR}/CROSSILLEGAL.[0-9]* ln $EXPANDEDINPUT ${DBDIR}/EXPANDEDINPUT ln $STRIPPEDINPUT ${DBDIR}/STRIPPEDINPUT ln $CRUNCHEDINPUT ${DBDIR}/CRUNCHEDINPUT ln $PRODUCTLIST ${DBDIR}/PRODUCTLIST ln $EXPANDEDPAIRS ${DBDIR}/EXPANDEDPAIRS ln $LEGALFLAGLIST ${DBDIR}/LEGALFLAGLIST ln $JOINEDPAIRS ${DBDIR}/JOINEDPAIRS ln $MINIMALAFFIXES ${DBDIR}/MINIMALAFFIXES ln $CROSSROOTS ${DBDIR}/CROSSROOTS ln $CROSSEXPANDED ${DBDIR}/CROSSEXPANDED ln $CROSSPAIRS ${DBDIR}/CROSSPAIRS ln $CROSSILLEGAL ${DBDIR}/CROSSILLEGAL ln $ILLEGALCOMBOS ${DBDIR}/ILLEGALCOMBOS ln $FAKEDICT ${DBDIR}/FAKEDICT ln $FAKEHASH ${DBDIR}/FAKEHASH.hash ln $AWKSCRIPT ${DBDIR}/AWKSCRIPT fi run() { "$@" || { status=$? touch "$ERRORFLAGFILE" echo "$@ failed with $status" > "$ERRORFLAGFILE" exit $status } } checkerrorflagfile() { [ ! -e "$ERRORFLAGFILE" ] || { cat "$ERRORFLAGFILE" 1>&2 rm -rf $MUNCHDIR exit 1 } } rm -f "$ERRORFLAGFILE" JOIN="run $JOIN" COMBINE="run $COMBINE" ISPELL="run $ISPELL" set -e # # Create a dummy dictionary to hold a compiled copy of the language # table. Initially, it holds the conversion table, if it exists. # case "X$convtabs" in X) convtabs="$langtabs" ;; esac echo 'QQQQQQQQ' > $FAKEDICT $BUILDHASH -s $FAKEDICT $convtabs $FAKEHASH \ || (echo "Couldn't create fake hash file" 1>&2; rm -rf $MUNCHDIR; exit 1) \ || exit 1 # # Figure out how 'sort' sorts signed fields, for arguments to ijoin. # This is a little bit of a tricky pipe, but the result is that SIGNED # is set to "-s" if characters with the top bit set sort before those # without, and "-u" if the reverse is true. How does it work? The # first "tr" step generates two lines, one containing "-u", the other # with the same but with the high-order bit set. The second "tr" # changes the high-bit "-u" back to "-s". If the high-bit "-u" was # sorted first, the sed step will select "-s" for SIGNED; otherwise # it'll pick "-u". We have to be careful about backslash quoting # conventions, because some systems differ. # backslash=\\ for i in 0 1 2 3 do if [ `echo a | tr "${backslash}141" b` = b ] then break fi backslash="$backslash$backslash" done SIGNED=`echo '-s -u' | tr s "${backslash}365" | sort | tr "${backslash}365" s | sed -e 1q` # # Collect all the input and expand all the affix options ($ISPELL -e), # and preserve (sorted) for later joining in EXPANDEDINPUT. The icombine # step is to make sure that unneeded capitalizations (e.g., Farmer and farmer) # are weeded out. The first sort must be folded for icombine; the second # must be unfolded for join. # $verbose && echo "Collecting input." 1>&2 if $CRETIN_SORT then sortopts='-k 1f,1 -k 1' else sortopts='+0f -1 +0' fi if [ $# -eq 0 ] then $ISPELL "$wchars" -e1 -d $FAKEHASH -p /dev/null | tr " " ' ' else cat "$@" | $ISPELL "$wchars" -e1 -d $FAKEHASH -p /dev/null | tr " " ' ' fi \ | sort $SORTTMP -u $sortopts \ | $COMBINE $icflags "$wchars" $langtabs \ | sort $SORTTMP -u > $EXPANDEDINPUT checkerrorflagfile # # If a conversion table existed, recreate the fake hash file with the # "real" language table. # case "$convtabs" in $langtabs) ;; *) $BUILDHASH -s $FAKEDICT $langtabs $FAKEHASH \ || (echo "Couldn't create fake hash file" 1>&2; \ rm -rf $MUNCHDIR; exit 1) \ || exit 1 ;; esac rm -f ${FAKEDICT}* # # If the -s (strip) option was specified, remove all # expanded words that are covered by the dictionary. This produces # the final list of expanded words that this dictionary must cover. # Leave the list in STRIPPEDINPUT. # if [ "X$strip" = "Xno" ] then rm -f $STRIPPEDINPUT ln $EXPANDEDINPUT $STRIPPEDINPUT if [ "$debug" = yes ] then rm -f ${DBDIR}/STRIPPEDINPUT ln $STRIPPEDINPUT ${DBDIR}/STRIPPEDINPUT fi else $verbose && echo "Stripping words already in the dictionary." 1>&2 $ISPELL "$wchars" -l $dictopt -p /dev/null < $EXPANDEDINPUT \ > $STRIPPEDINPUT checkerrorflagfile fi # # Figure out what the flag-marking character is. # $verbose && echo "Finding flag marker." 1>&2 flagmarker=`$ISPELL -D -d $FAKEHASH \ | sed -n -e '/^flagmarker/s/flagmarker //p'` case "$flagmarker" in \\*) flagmarker=`expr "$flagmarker" : '.\(.\)'` ;; esac checkerrorflagfile # # Munch the input to generate roots and affixes ($ISPELL -c). We are # only interested in words that have at least one affix (grep -E $flagmarker); # the next step will pick up the rest. Some of the roots are illegal. We # use join to restrict the output to those root words that are found # in the original dictionary. # $verbose && echo "Generating roots and affixes." 1>&2 if $CRETIN_SORT then sortopts='-k 1,1 -k 2' else sortopts='+0 -1 +1' fi $ISPELL "$wchars" -c -W0 -d $FAKEHASH -p /dev/null < $STRIPPEDINPUT \ | tr " " ' ' \ | grep -a -E "$flagmarker" | sort $SORTTMP -u "-t$flagmarker" $sortopts \ | $JOIN $SIGNED "-t$flagmarker" - $EXPANDEDINPUT > $CRUNCHEDINPUT checkerrorflagfile # # We now have a list of legal roots, and of affixes that apply to the # root words. However, it is possible for some affix flags to generate more # than one output word. For example, with the flag table entry # # flag R: . > ER # . > ERS # # the input "BOTHER" will generate an entry "BOTH/R" in CRUNCHEDINPUT. But # this will accept "BOTHER" and "BOTHERS" in the dictionary, which is # wrong (in this case, though it's good English). # # To cure this problem, we first have to know which flags generate which # expansions. We use $ISPELL -e3 to expand the flags (the second e causes # the root and flag to be included in the output), and get pairs # suitable for joining. In the example above, we would get # # BOTH/R BOTHER # BOTH/R BOTHERS # # We save this in EXPANDEDPAIRS for the next step. # $verbose && echo 'Expanding dictionary into EXPANDEDPAIRS.' 1>&2 if $CRETIN_SORT then sortopts='-k 2' else sortopts='+1' fi $ISPELL "$wchars" -e3 -d $FAKEHASH -p /dev/null < $CRUNCHEDINPUT \ | sort $SORTTMP $sortopts > $EXPANDEDPAIRS checkerrorflagfile # # Now we want to extract the lines in EXPANDEDPAIRS in which the second field # is *not* listed in the original dictionary EXPANDEDINPUT; these illegal # lines contain the flags we cannot include without accepting illegal words. # It is somewhat easier to extract those which actually are listed (with # join), and then use comm to strip these from EXPANDEDPAIRS to get the # illegal expansions, together with the flags that generate them (we must # re-sort EXPANDEDPAIRS before running comm). Sed # gets rid of the expansion and uniq gets rid of duplicates. Comm then # selects the remainder of the list from CRUNCHEDINPUT and puts it in # LEGALFLAGLIST. The final step is to use a sort and icombine to put # the list into a one-entry-per-root format. # # BTW, I thought of using cut for the sed step (on systems that have it), # but it turns out that sed is faster! # $JOIN -j1 2 -o 1.1 1.2 $SIGNED $EXPANDEDPAIRS $EXPANDEDINPUT \ | sort $SORTTMP -u > $JOINEDPAIRS sort $SORTTMP -o $EXPANDEDPAIRS $EXPANDEDPAIRS sort $SORTTMP -o $CRUNCHEDINPUT $CRUNCHEDINPUT $verbose && echo 'Creating list of legal roots/flags.' 1>&2 if $CRETIN_SORT then sortopts='-k 1f,1 -k 1' else sortopts='+0f -1 +0' fi comm -13 $JOINEDPAIRS $EXPANDEDPAIRS \ | (sed -e 's; .*$;;' ; rm -f $JOINEDPAIRS $EXPANDEDPAIRS) \ | uniq \ | (comm -13 - $CRUNCHEDINPUT ; rm -f $CRUNCHEDINPUT) \ | sort $SORTTMP -u "-t$flagmarker" $sortopts \ | $COMBINE "$wchars" $langtabs > $LEGALFLAGLIST checkerrorflagfile # # LEGALFLAGLIST now contains root/flag combinations that, when expanded, # produce only words from EXPANDEDPAIRS. However, there is still a # problem if the language tables have any cross-product flags. A legal # root may appear in LEGALFLAGLIST with two flags that participate # in cross-products. When such a dictionary entry is expanded, # the cross-products will generate some extra words that may not # be in EXPANDEDPAIRS. We need to remove these from LEGALFLAGLIST. # # The first step is to collect the names of the flags that participate # in cross-products. Ispell will dump the language tables for us, and # sed is a pretty handy way to strip out extra information. We use # uniq -c and a numerical sort to put the flags in approximate order of how # "productive" they are (in terms of how likely they are to generate a lot # of output words). The least-productive flags are given last and will # be removed first. # $verbose \ && echo 'Creating list of flags that participate in cross-products.' 1>&2 if $CRETIN_SORT then sortopts='-k 1rn,1 -k 3' else sortopts='+0rn -1 +2' fi $ISPELL -D -d $FAKEHASH \ | sed -n -e '1,$s/:.*$// /^flagmarker/d /^prefixes/,/^suffixes/s/^ flag \*/p /p /^suffixes/,$s/^ flag \*/s /p' \ | sort $SORTTMP \ | uniq -c \ | tr ' ' ' ' \ | sort $SORTTMP $sortopts > $PRODUCTLIST checkerrorflagfile if [ `grep -a -F -c ' p ' $PRODUCTLIST` -gt 0 \ -a `grep -a -F -c ' s ' $PRODUCTLIST` -gt 0 ] then # # The language tables allow cross products. See if LEGALFLAGLIST has # any roots with multiple cross-product flags. Put them in CROSSROOTS. # $verbose && echo 'Finding prefix and suffix flags.' 1>&2 preflags=`sed -n -e 's/^[ 0-9]*p //p' $PRODUCTLIST | tr -d ' '` sufflags=`sed -n -e 's/^[ 0-9]*s //p' $PRODUCTLIST | tr -d ' '` grep -a -E "$flagmarker.*[$preflags].*[$sufflags]|$flagmarker.*[$sufflags].*[$preflags]" \ $LEGALFLAGLIST \ > $CROSSROOTS || : # # We will need an awk script; it's so big that it core-dumps my shell # under certain conditions. The rationale behind the script is commented # where the script is used. Note that you may want to change this # script for languages other than English. # case "$flagmarker" in /) sedchar=: ;; *) sedchar=/ ;; esac $verbose && echo 'Creating awk script.' 1>&2 sed -e "s/PREFLAGS/$preflags/" -e "s/SUFFLAGS/$sufflags/" \ -e "s;ILLEGALCOMBOS;$ILLEGALCOMBOS;" \ -e "s${sedchar}FLAGMARKER${sedchar}$flagmarker${sedchar}" \ > $AWKSCRIPT << 'ENDOFAWKSCRIPT' BEGIN \ { preflags = "PREFLAGS" sufflags = "SUFFLAGS" illegalcombos = "ILLEGALCOMBOS" flagmarker = "FLAGMARKER" pflaglen = length (preflags) for (i = 1; i <= pflaglen; i++) pflags[i] = substr (preflags, i, 1); sflaglen = length (sufflags) for (i = 1; i <= sflaglen; i++) sflags[i] = substr (sufflags, i, 1); } { len = length ($2) pnew2 = "" snew2 = "" pbad = "" sbad = "" sufs = 0 pres = 0 for (i = 1; i <= len; i++) { curflag = substr ($2, i, 1) for (j = 1; j <= pflaglen; j++) { if (pflags[j] == curflag) { pres++ pnew2 = substr ($2, 1, i - 1) substr ($2, i + 1) pbad = curflag } } for (j = 1; j <= sflaglen; j++) { if (sflags[j] == curflag) { sufs++ snew2 = substr ($2, 1, i - 1) substr ($2, i + 1) sbad = curflag } } } if (pres == 1) { print $1 flagmarker pnew2 print $1 flagmarker pbad >> illegalcombos } else if (sufs == 1) { print $1 flagmarker snew2 print $1 flagmarker sbad >> illegalcombos } else if (pres > 0) { print $1 flagmarker pnew2 print $1 flagmarker pbad >> illegalcombos } else { print $1 flagmarker snew2 print $1 flagmarker sbad >> illegalcombos } } ENDOFAWKSCRIPT : > $ILLEGALCOMBOS dbnum=1 while [ -s $CROSSROOTS ] do # # CROSSROOTS contains the roots whose cross-product expansions # might be illegal. We now need to locate the actual illegal ones. # We do this in much the same way we created LEGALFLAGLIST from # CRUNCHEDINPUT. First we make CROSSEXPANDED, which is analogous # to EXPANDEDPAIRS. # $verbose && echo "Creating cross expansions (pass $dbnum)." 1>&2 if $CRETIN_SORT then sortopts='-k 2' else sortopts='+1' fi $ISPELL "$wchars" -e3 -d $FAKEHASH -p /dev/null < $CROSSROOTS \ | sort $SORTTMP $sortopts > $CROSSEXPANDED checkerrorflagfile # # Now we join CROSSEXPANDED against EXPANDEDINPUT to produce # CROSSPAIRS, and then comm that against CROSSEXPANDED to # get CROSSILLEGAL, the list of illegal cross-product flag # combinations. # $JOIN -j1 2 -o 1.1 1.2 $SIGNED $CROSSEXPANDED $EXPANDEDINPUT \ | sort $SORTTMP -u > $CROSSPAIRS checkerrorflagfile sort $SORTTMP -u -o $CROSSEXPANDED $CROSSEXPANDED $verbose \ && echo "Finding illegal cross expansions (pass $dbnum)." 1>&2 comm -13 $CROSSPAIRS $CROSSEXPANDED \ | sed -e 's; .*$;;' \ | uniq > $CROSSILLEGAL if [ "$debug" = yes ] then mv $CROSSROOTS $DBDIR/CROSSROOTS.$dbnum ln $CROSSEXPANDED $DBDIR/CROSSEXP.$dbnum ln $CROSSPAIRS $DBDIR/CROSSPAIRS.$dbnum ln $CROSSILLEGAL $DBDIR/CROSSILLEGAL.$dbnum fi # # Now it is time to try to clear up the illegalities. For # each word in the illegal list, remove one of the cross-product # flags. The flag chosen is selected in an attempt to cure the # problem quickly, as follows: (1) if there is only one suffix # flag or only one prefix flag, we remove that. (2) If there is # a prefix flag, we remove the "least desirable" (according to # the order of preflags). (This may be pro-English prejudice, # and you might want to change this if your language is prefix-heavy). # (3) Otherwise we remove the least-desirable suffix flag # # The output of the awk script becomes the new CROSSROOTS. In # addition, we add the rejected flags to ILLEGALCOMBOS (this is done # inside the awk script) so they can be removed from LEGALFLAGLIST # later. # awk "-F$flagmarker" -f $AWKSCRIPT $CROSSILLEGAL > $CROSSROOTS if [ "$debug" = yes ] then rm -f $CROSSEXPANDED $CROSSPAIRS $CROSSILLEGAL fi dbnum=`expr $dbnum + 1` if [ $dbnum -gt 100 ] then echo "Too many passes, aborting cross-product loop. Munchlist failed." 1>&2 if [ "X$MUNCHMAIL" != X ] then ( ls -ld ${DBDIR}/[A-Z]* cat ${MAILDEBUGDIR}/munchlist.mail ) | mail -s 'Munchlist debug output' "$MUNCHMAIL" rm -f ${MAILDEBUGDIR}/munchlist.mail fi rm -rf $MUNCHDIR exit 1 fi done rm -f $CROSSEXPANDED $CROSSPAIRS $CROSSILLEGAL $AWKSCRIPT # # Now we have, in ILLEGALCOMBOS, a list of root/flag combinations # that must be removed from LEGALFLAGLIST to get the final list # of truly legal flags. ILLEGALCOMBOS has one flag per line, so # by turning LEGALFLAGLIST into this form (sed), it's an # easy task for comm. We have to recombine flags again after the # extraction, to get all flags for a given root on the same line so that # cross-products will come out right. # if [ -s $ILLEGALCOMBOS ] then sort $SORTTMP -u -o $ILLEGALCOMBOS $ILLEGALCOMBOS $verbose && echo 'Finding roots of cross expansions.' 1>&2 if $CRETIN_SORT then sortopts='-k 1f,1 -k 1' else sortopts='+0f -1 +0' fi sort $SORTTMP $LEGALFLAGLIST \ | sed -e '/\/../{ s;^\(.*\)/\(.\)\(.*\);\1/\2\ \1/\3; P D }' \ | comm -23 - $ILLEGALCOMBOS \ | sort $SORTTMP -u "-t$flagmarker" $sortopts \ | $COMBINE "$wchars" $langtabs > $CROSSROOTS checkerrorflagfile mv $CROSSROOTS $LEGALFLAGLIST if [ "$debug" = yes ] then rm -f ${DBDIR}/LEGALFLAGLIST1 ln $LEGALFLAGLIST ${DBDIR}/LEGALFLAGLIST1 fi fi fi rm -f $PRODUCTLIST $CROSSROOTS $ILLEGALCOMBOS $EXPANDEDINPUT # # We now have (in LEGALFLAGLIST) a list of roots and flags which will # accept words taken from EXPANDEDINPUT and no others (though some of # EXPANDEDINPUT is not covered by this list). However, many of the # expanded words can be generated in more than one way. For example, # "bather" can be generated from "bath/R" and "bathe/R". This wastes # unnecessary space in the raw dictionary and, in some cases, in the # hash file as well. The solution is to list the various ways of # getting a given word and choose exactly one. All other things being # equal, we want to choose the one with the highest expansion length # to root length ratio. The $ISPELL -e4 option takes care of this by # providing us with a field to sort on. # # The ispell/awk combination is similar to the ispell/sed pipe used to # generate EXPANDEDPAIRS, except that ispell adds an extra field # giving the sort order. The first sort gets things in order so the # first root listed is the one we want, and the second sort (-um) then # selects that first root. Sed strips the expansion from the root, # and a final sort -u generates MINIMALAFFIXES, the final list of # affixes that (more or less) minimally covers what it can from # EXPANDEDINPUT. # $verbose && echo 'Eliminating non-optimal affixes.' 1>&2 if $CRETIN_SORT then sortopts1='-k 2,2 -k 2rn,3 -k 1,1' sortopts2='-k 2,2' sortopts3='-k 1f,1 -k 1' else sortopts1='+1 -2 +2rn -3 +0 -1' sortopts2='+1 -2' sortopts3='+0f -1 +0' fi $ISPELL "$wchars" -e4 -d $FAKEHASH -p /dev/null < $LEGALFLAGLIST \ | sort $SORTTMP $sortopts1 \ | sort $SORTTMP -um $sortopts2 \ | sed -e 's; .*$;;' \ | sort $SORTTMP -u "-t$flagmarker" $sortopts3 > $MINIMALAFFIXES rm -f $LEGALFLAGLIST # # Now we're almost done. MINIMALAFFIXES covers some (with luck, most) # of the words in STRIPPEDINPUT. Now we must create a list of the remaining # words (those omitted by MINIMALAFFIXES) and add it to MINIMALAFFIXES. # The best way to do this is to actually build a partial dictionary from # MINIMALAFFIXES in FAKEHASH, and then use $ISPELL -l to list the words that # are not covered by this dictionary. This must then be combined with the # reduced version of MINIMALAFFIXES and sorted to produce the final result. # $verbose && echo "Generating output word list." 1>&2 if $CRETIN_SORT then sortopts='-k 1f,1 -k 1' else sortopts='+0f -1 +0' fi if [ -s $MINIMALAFFIXES ] then $BUILDHASH -s $MINIMALAFFIXES $langtabs $FAKEHASH > /dev/null \ || (echo "Couldn't create intermediate hash file" 1>&2; rm -rf $MUNCHDIR; exit 1) \ || exit 1 if [ "$debug" = yes ] then rm -f ${DBDIR}/MINIMALAFFIXES.stat ln $MINIMALAFFIXES.stat ${DBDIR}/MINIMALAFFIXES..stat fi ($ISPELL "$wchars" -l -d $FAKEHASH -p /dev/null < $STRIPPEDINPUT; \ $COMBINE "$wchars" $langtabs < $MINIMALAFFIXES) \ | sort $SORTTMP "-t$flagmarker" -u $sortopts else # MINIMALAFFIXES is empty; just produce a sorted version of STRIPPEDINPUT sort $SORTTMP "-t$flagmarker" -u $sortopts $STRIPPEDINPUT fi checkerrorflagfile if [ "X$MUNCHMAIL" != X ] then ( ls -ld ${DBDIR}/[A-Z]* cat ${MAILDEBUGDIR}/munchlist.mail ) | mail -s 'Munchlist debug output' "$MUNCHMAIL" rm -f ${MAILDEBUGDIR}/munchlist.mail fi rm -rf $MUNCHDIR exit 0