Linux ip-172-31-23-187 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
Apache/2.4.41 (Ubuntu)
: 172.31.23.187 | : 172.31.24.150
Cant Read [ /etc/named.conf ]
www-data
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
NF
963
B
-rwxr-xr-x
[
50.11
KB
-rwxr-xr-x
aa-enabled
26.29
KB
-rwxr-xr-x
aa-exec
26.48
KB
-rwxr-xr-x
ab
54.06
KB
-rwxr-xr-x
add-apt-repository
7.24
KB
-rwxr-xr-x
addpart
22.01
KB
-rwxr-xr-x
apport-bug
2.5
KB
-rwxr-xr-x
apport-cli
13.05
KB
-rwxr-xr-x
apport-collect
2.5
KB
-rwxr-xr-x
apport-unpack
2.02
KB
-rwxr-xr-x
apropos
46.88
KB
-rwxr-xr-x
apt
14.16
KB
-rwxr-xr-x
apt-add-repository
7.24
KB
-rwxr-xr-x
apt-cache
74.3
KB
-rwxr-xr-x
apt-cdrom
22.31
KB
-rwxr-xr-x
apt-config
22.16
KB
-rwxr-xr-x
apt-extracttemplates
22.25
KB
-rwxr-xr-x
apt-ftparchive
230.41
KB
-rwxr-xr-x
apt-get
38.24
KB
-rwxr-xr-x
apt-key
27.28
KB
-rwxr-xr-x
apt-mark
50.24
KB
-rwxr-xr-x
apt-sortpkgs
34.17
KB
-rwxr-xr-x
arch
34.23
KB
-rwxr-xr-x
at
50.13
KB
-rwsr-sr-x
atq
50.13
KB
-rwsr-sr-x
atrm
50.13
KB
-rwsr-sr-x
automat-visualize3
402
B
-rwxr-xr-x
awk
686.1
KB
-rwxr-xr-x
b2sum
54.24
KB
-rwxr-xr-x
base32
38.22
KB
-rwxr-xr-x
base64
38.22
KB
-rwxr-xr-x
basename
30.22
KB
-rwxr-xr-x
bash
1.16
MB
-rwxr-xr-x
bashbug
6.64
KB
-rwxr-xr-x
batch
152
B
-rwxr-xr-x
bc
90.59
KB
-rwxr-xr-x
boltctl
150.84
KB
-rwxr-xr-x
bootctl
58.13
KB
-rwxr-xr-x
bsd-from
9.93
KB
-rwxr-xr-x
bsd-write
13.93
KB
-rwxr-sr-x
btrfs
787.75
KB
-rwxr-xr-x
btrfs-convert
451.2
KB
-rwxr-xr-x
btrfs-find-root
427.26
KB
-rwxr-xr-x
btrfs-image
447.2
KB
-rwxr-xr-x
btrfs-map-logical
431.2
KB
-rwxr-xr-x
btrfs-select-super
427.2
KB
-rwxr-xr-x
btrfsck
787.75
KB
-rwxr-xr-x
btrfstune
427.2
KB
-rwxr-xr-x
bunzip2
33.99
KB
-rwxr-xr-x
busctl
82.12
KB
-rwxr-xr-x
busybox
1.68
MB
-rwxr-xr-x
byobu
8.17
KB
-rwxr-xr-x
byobu-config
996
B
-rwxr-xr-x
byobu-ctrl-a
4.66
KB
-rwxr-xr-x
byobu-disable
1.26
KB
-rwxr-xr-x
byobu-disable-prompt
1.31
KB
-rwxr-xr-x
byobu-enable
1.15
KB
-rwxr-xr-x
byobu-enable-prompt
1.42
KB
-rwxr-xr-x
byobu-export
1.32
KB
-rwxr-xr-x
byobu-janitor
6.29
KB
-rwxr-xr-x
byobu-keybindings
1.47
KB
-rwxr-xr-x
byobu-launch
3.25
KB
-rwxr-xr-x
byobu-launcher
1.87
KB
-rwxr-xr-x
byobu-launcher-install
2.4
KB
-rwxr-xr-x
byobu-launcher-uninstall
1.52
KB
-rwxr-xr-x
byobu-layout
3.27
KB
-rwxr-xr-x
byobu-prompt
1.13
KB
-rwxr-xr-x
byobu-quiet
1.38
KB
-rwxr-xr-x
byobu-reconnect-sockets
3.22
KB
-rwxr-xr-x
byobu-screen
8.17
KB
-rwxr-xr-x
byobu-select-backend
1.42
KB
-rwxr-xr-x
byobu-select-profile
5
KB
-rwxr-xr-x
byobu-select-session
1012
B
-rwxr-xr-x
byobu-shell
1.56
KB
-rwxr-xr-x
byobu-silent
1.28
KB
-rwxr-xr-x
byobu-status
5.87
KB
-rwxr-xr-x
byobu-status-detail
1.18
KB
-rwxr-xr-x
byobu-tmux
8.17
KB
-rwxr-xr-x
byobu-ugraph
4.56
KB
-rwxr-xr-x
byobu-ulevel
11.71
KB
-rwxr-xr-x
bzcat
33.99
KB
-rwxr-xr-x
bzcmp
2.17
KB
-rwxr-xr-x
bzdiff
2.17
KB
-rwxr-xr-x
bzegrep
3.69
KB
-rwxr-xr-x
bzexe
4.76
KB
-rwxr-xr-x
bzfgrep
3.69
KB
-rwxr-xr-x
bzgrep
3.69
KB
-rwxr-xr-x
bzip2
33.99
KB
-rwxr-xr-x
bzip2recover
13.93
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
c_rehash
6.65
KB
-rwxr-xr-x
cal
28.64
KB
-rwxr-xr-x
calendar
30.37
KB
-rwxr-xr-x
captoinfo
82.2
KB
-rwxr-xr-x
cat
34.26
KB
-rwxr-xr-x
catchsegv
3.25
KB
-rwxr-xr-x
catman
38.35
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
certbot
385
B
-rwxr-xr-x
cftp3
380
B
-rwxr-xr-x
chage
74.16
KB
-rwxr-sr-x
chardet3
389
B
-rwxr-xr-x
chardetect3
389
B
-rwxr-xr-x
chattr
14.09
KB
-rwxr-xr-x
chcon
62.22
KB
-rwxr-xr-x
check-language-support
2.71
KB
-rwxr-xr-x
checkgid
9.93
KB
-rwxr-xr-x
chfn
78.52
KB
-rwsr-xr-x
chgrp
58.22
KB
-rwxr-xr-x
chmod
54.23
KB
-rwxr-xr-x
choom
46.01
KB
-rwxr-xr-x
chown
62.22
KB
-rwxr-xr-x
chrt
34.01
KB
-rwxr-xr-x
chsh
43.51
KB
-rwsr-xr-x
chvt
10.01
KB
-rwxr-xr-x
ckbcomp
146.39
KB
-rwxr-xr-x
ckeygen3
386
B
-rwxr-xr-x
cksum
34.22
KB
-rwxr-xr-x
clear
10.09
KB
-rwxr-xr-x
clear_console
10.01
KB
-rwxr-xr-x
cloud-id
396
B
-rwxr-xr-x
cloud-init
400
B
-rwxr-xr-x
cloud-init-per
2.06
KB
-rwxr-xr-x
cmp
42.02
KB
-rwxr-xr-x
codepage
13.93
KB
-rwxr-xr-x
col
13.93
KB
-rwxr-xr-x
col1
963
B
-rwxr-xr-x
col2
963
B
-rwxr-xr-x
col3
963
B
-rwxr-xr-x
col4
963
B
-rwxr-xr-x
col5
963
B
-rwxr-xr-x
col6
963
B
-rwxr-xr-x
col7
963
B
-rwxr-xr-x
col8
963
B
-rwxr-xr-x
col9
963
B
-rwxr-xr-x
colcrt
9.93
KB
-rwxr-xr-x
colrm
9.93
KB
-rwxr-xr-x
column
13.95
KB
-rwxr-xr-x
comm
38.23
KB
-rwxr-xr-x
compose
18.05
KB
-rwxr-xr-x
conch3
382
B
-rwxr-xr-x
convert-dtsv0
30.18
KB
-rwxr-xr-x
corelist
14.73
KB
-rwxr-xr-x
cp
134.24
KB
-rwxr-xr-x
cpan
7.96
KB
-rwxr-xr-x
cpan5.30-aarch64-linux-gnu
7.99
KB
-rwxr-xr-x
cpio
157.28
KB
-rwxr-xr-x
crontab
38.41
KB
-rwxr-sr-x
csplit
46.23
KB
-rwxr-xr-x
ctail
960
B
-rwxr-xr-x
ctstat
22.27
KB
-rwxr-xr-x
curl
226.09
KB
-rwxr-xr-x
cut
42.23
KB
-rwxr-xr-x
cvtsudoers
254.33
KB
-rwxr-xr-x
dash
134.5
KB
-rwxr-xr-x
date
94.23
KB
-rwxr-xr-x
dbilogstrip
1.35
KB
-rwxr-xr-x
dbiprof
6.06
KB
-rwxr-xr-x
dbiproxy
5.27
KB
-rwxr-xr-x
dbus-cleanup-sockets
13.92
KB
-rwxr-xr-x
dbus-daemon
230.93
KB
-rwxr-xr-x
dbus-monitor
21.92
KB
-rwxr-xr-x
dbus-run-session
13.92
KB
-rwxr-xr-x
dbus-send
25.92
KB
-rwxr-xr-x
dbus-update-activation-environment
13.92
KB
-rwxr-xr-x
dbus-uuidgen
9.92
KB
-rwxr-xr-x
dbxtool
22.08
KB
-rwxr-xr-x
dd
78.26
KB
-rwxr-xr-x
deallocvt
14.01
KB
-rwxr-xr-x
deb-systemd-helper
20.83
KB
-rwxr-xr-x
deb-systemd-invoke
4.33
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-set-selections
2.87
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
debian-distro-info
22.66
KB
-rwxr-xr-x
delpart
22.01
KB
-rwxr-xr-x
delv
40.52
KB
-rwxr-xr-x
devio
30.26
KB
-rwxr-xr-x
df
86.8
KB
-rwxr-xr-x
dfu-tool
102.08
KB
-rwxr-xr-x
dh_bash-completion
2.39
KB
-rwxr-xr-x
dh_perl_dbi
1.04
KB
-rwxr-xr-x
diff
198.25
KB
-rwxr-xr-x
diff3
58.12
KB
-rwxr-xr-x
dig
134.58
KB
-rwxr-xr-x
dir
134.66
KB
-rwxr-xr-x
dircolors
42.23
KB
-rwxr-xr-x
dirmngr
549.87
KB
-rwxr-xr-x
dirmngr-client
106.93
KB
-rwxr-xr-x
dirname
30.22
KB
-rwxr-xr-x
distro-info
22.66
KB
-rwxr-xr-x
dmesg
74.2
KB
-rwxr-xr-x
dnsdomainname
18.01
KB
-rwxr-xr-x
do-release-upgrade
9.99
KB
-rwxr-xr-x
domainname
18.01
KB
-rwxr-xr-x
dpkg
298.41
KB
-rwxr-xr-x
dpkg-deb
166.29
KB
-rwxr-xr-x
dpkg-divert
146.34
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.03
KB
-rwxr-xr-x
dpkg-query
154.31
KB
-rwxr-xr-x
dpkg-split
122.24
KB
-rwxr-xr-x
dpkg-statoverride
58.07
KB
-rwxr-xr-x
dpkg-trigger
82.26
KB
-rwxr-xr-x
dtc
138.52
KB
-rwxr-xr-x
dtdiff
680
B
-rwxr-xr-x
du
102.23
KB
-rwxr-xr-x
dumpimage
268.29
KB
-rwxr-xr-x
dumpkeys
174.45
KB
-rwxr-xr-x
dvipdf
1007
B
-rwxr-xr-x
eatmydata
2.74
KB
-rwxr-xr-x
ec2metadata
7.12
KB
-rwxr-xr-x
echo
30.22
KB
-rwxr-xr-x
ed
54.22
KB
-rwxr-xr-x
edit
18.05
KB
-rwxr-xr-x
editor
316.48
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
eject
30.61
KB
-rwxr-xr-x
enable-ec2-spot-hibernation
237
B
-rwxr-xr-x
enc2xs
41.12
KB
-rwxr-xr-x
encguess
2.99
KB
-rwxr-xr-x
env
34.22
KB
-rwxr-xr-x
envsubst
34.01
KB
-rwxr-xr-x
eps2eps
639
B
-rwxr-xr-x
eqn
201.2
KB
-rwxr-xr-x
ex
2.82
MB
-rwxr-xr-x
expand
34.23
KB
-rwxr-xr-x
expiry
22.34
KB
-rwxr-sr-x
expr
46.21
KB
-rwxr-xr-x
factor
70.23
KB
-rwxr-xr-x
faillog
18.36
KB
-rwxr-xr-x
fallocate
26.01
KB
-rwxr-xr-x
false
30.22
KB
-rwxr-xr-x
fcgistarter
9.93
KB
-rwxr-xr-x
fdtdump
18.17
KB
-rwxr-xr-x
fdtget
18.17
KB
-rwxr-xr-x
fdtoverlay
18.17
KB
-rwxr-xr-x
fdtput
22.17
KB
-rwxr-xr-x
fgconsole
14.13
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
file
22.23
KB
-rwxr-xr-x
finalrd
2.1
KB
-rwxr-xr-x
fincore
30.04
KB
-rwxr-xr-x
find
300.39
KB
-rwxr-xr-x
findmnt
63.18
KB
-rwxr-xr-x
flock
30.07
KB
-rwxr-xr-x
fmt
38.22
KB
-rwxr-xr-x
fold
34.22
KB
-rwxr-xr-x
free
26.02
KB
-rwxr-xr-x
from
9.93
KB
-rwxr-xr-x
ftp
102.46
KB
-rwxr-xr-x
funzip
21.93
KB
-rwxr-xr-x
fuser
34.93
KB
-rwxr-xr-x
fusermount
34.01
KB
-rwsr-xr-x
futurize
384
B
-rwxr-xr-x
fwupdagent
182.08
KB
-rwxr-xr-x
fwupdate
74.13
KB
-rwxr-xr-x
fwupdmgr
182.08
KB
-rwxr-xr-x
fwupdtool
374.93
KB
-rwxr-xr-x
gapplication
18.16
KB
-rwxr-xr-x
gawk
686.1
KB
-rwxr-xr-x
gdbus
42.16
KB
-rwxr-xr-x
geqn
201.2
KB
-rwxr-xr-x
getconf
30.07
KB
-rwxr-xr-x
getent
30.41
KB
-rwxr-xr-x
getkeycodes
14.01
KB
-rwxr-xr-x
getopt
18.01
KB
-rwxr-xr-x
gettext
34.01
KB
-rwxr-xr-x
gettext.sh
4.52
KB
-rwxr-xr-x
ghostscript
9.93
KB
-rwxr-xr-x
ginstall-info
103.02
KB
-rwxr-xr-x
gio
82.21
KB
-rwxr-xr-x
gio-querymodules
14.09
KB
-rwxr-xr-x
git
2.9
MB
-rwxr-xr-x
git-receive-pack
2.9
MB
-rwxr-xr-x
git-shell
1.69
MB
-rwxr-xr-x
git-upload-archive
2.9
MB
-rwxr-xr-x
git-upload-pack
2.9
MB
-rwxr-xr-x
glib-compile-schemas
46.27
KB
-rwxr-xr-x
gpasswd
78.02
KB
-rwsr-xr-x
gpg
1009.88
KB
-rwxr-xr-x
gpg-agent
396.92
KB
-rwxr-xr-x
gpg-connect-agent
155.03
KB
-rwxr-xr-x
gpg-wks-server
195.09
KB
-rwxr-xr-x
gpg-zip
3.43
KB
-rwxr-xr-x
gpgcompose
850.03
KB
-rwxr-xr-x
gpgconf
162.55
KB
-rwxr-xr-x
gpgparsemail
26.16
KB
-rwxr-xr-x
gpgsm
487.2
KB
-rwxr-xr-x
gpgsplit
78.65
KB
-rwxr-xr-x
gpgtar
147.52
KB
-rwxr-xr-x
gpgv
431.03
KB
-rwxr-xr-x
gpic
192.1
KB
-rwxr-xr-x
grep
170.22
KB
-rwxr-xr-x
gresource
18.09
KB
-rwxr-xr-x
groff
117.3
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grops
173.68
KB
-rwxr-xr-x
grotty
129.33
KB
-rwxr-xr-x
groups
34.22
KB
-rwxr-xr-x
growpart
23.95
KB
-rwxr-xr-x
grub-editenv
247.59
KB
-rwxr-xr-x
grub-file
751.22
KB
-rwxr-xr-x
grub-fstest
872.08
KB
-rwxr-xr-x
grub-glue-efi
243.45
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
223.77
KB
-rwxr-xr-x
grub-mkfont
271.96
KB
-rwxr-xr-x
grub-mkimage
344.45
KB
-rwxr-xr-x
grub-mklayout
247.77
KB
-rwxr-xr-x
grub-mknetdir
393.28
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
247.73
KB
-rwxr-xr-x
grub-mkrelpath
243.2
KB
-rwxr-xr-x
grub-mkrescue
917.46
KB
-rwxr-xr-x
grub-mkstandalone
469.53
KB
-rwxr-xr-x
grub-mount
699.7
KB
-rwxr-xr-x
grub-render-label
771.56
KB
-rwxr-xr-x
grub-script-check
267.3
KB
-rwxr-xr-x
grub-syslinux2cfg
728.14
KB
-rwxr-xr-x
gs
9.93
KB
-rwxr-xr-x
gsbj
350
B
-rwxr-xr-x
gsdj
352
B
-rwxr-xr-x
gsdj500
352
B
-rwxr-xr-x
gsettings
26.09
KB
-rwxr-xr-x
gslj
353
B
-rwxr-xr-x
gslp
350
B
-rwxr-xr-x
gsnd
277
B
-rwxr-xr-x
gtbl
130.29
KB
-rwxr-xr-x
gunzip
2.29
KB
-rwxr-xr-x
gzexe
6.3
KB
-rwxr-xr-x
gzip
94.88
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.44
KB
-rwxr-xr-x
hd
26.03
KB
-rwxr-xr-x
head
42.23
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
26.03
KB
-rwxr-xr-x
hibagent
23.96
KB
-rwxr-xr-x
host
106.56
KB
-rwxr-xr-x
hostid
30.22
KB
-rwxr-xr-x
hostname
18.01
KB
-rwxr-xr-x
hostnamectl
22
KB
-rwxr-xr-x
htcacheclean
29.94
KB
-rwxr-xr-x
htdbm
17.93
KB
-rwxr-xr-x
htdigest
13.93
KB
-rwxr-xr-x
htop
179.72
KB
-rwxr-xr-x
htpasswd
17.93
KB
-rwxr-xr-x
hwe-support-status
10.58
KB
-rwxr-xr-x
iconv
58.16
KB
-rwxr-xr-x
id
38.23
KB
-rwxr-xr-x
info
297.34
KB
-rwxr-xr-x
infobrowser
297.34
KB
-rwxr-xr-x
infocmp
58.16
KB
-rwxr-xr-x
infotocap
82.2
KB
-rwxr-xr-x
innotop
445.81
KB
-rwxr-xr-x
install
138.27
KB
-rwxr-xr-x
install-info
103.02
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
26.01
KB
-rwxr-xr-x
ip
600.15
KB
-rwxr-xr-x
ipcmk
26.08
KB
-rwxr-xr-x
ipcrm
26.01
KB
-rwxr-xr-x
ipcs
70.01
KB
-rwxr-xr-x
iptables-xml
92.71
KB
-rwxr-xr-x
ischroot
9.96
KB
-rwxr-xr-x
iscsiadm
369.8
KB
-rwxr-xr-x
join
46.26
KB
-rwxr-xr-x
journalctl
66.02
KB
-rwxr-xr-x
json_pp
4.56
KB
-rwxr-xr-x
jsondiff
1004
B
-rwxr-xr-x
jsonpatch
3.58
KB
-rwxr-xr-x
jsonpatch-jsondiff
1004
B
-rwxr-xr-x
jsonpointer
1.79
KB
-rwxr-xr-x
jsonschema
397
B
-rwxr-xr-x
kbd_mode
14.01
KB
-rwxr-xr-x
kbdinfo
14.01
KB
-rwxr-xr-x
kbxutil
166.86
KB
-rwxr-xr-x
keep-one-running
3.51
KB
-rwxr-xr-x
kernel-install
5.07
KB
-rwxr-xr-x
keyring
385
B
-rwxr-xr-x
kill
34.01
KB
-rwxr-xr-x
killall
27.04
KB
-rwxr-xr-x
kmod
162.18
KB
-rwxr-xr-x
kwboot
13.97
KB
-rwxr-xr-x
landscape-sysinfo
624
B
-rwxr-xr-x
last
42.01
KB
-rwxr-xr-x
lastb
42.01
KB
-rwxr-xr-x
lastlog
27.38
KB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ldd
5.2
KB
-rwxr-xr-x
less
179.38
KB
-rwxr-xr-x
lessecho
10.1
KB
-rwxr-xr-x
lessfile
8.36
KB
-rwxr-xr-x
lesskey
19.48
KB
-rwxr-xr-x
lesspipe
8.36
KB
-rwxr-xr-x
letsencrypt
385
B
-rwxr-xr-x
lexgrog
94.68
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
link
30.22
KB
-rwxr-xr-x
linux-check-removal
3.99
KB
-rwxr-xr-x
linux-update-symlinks
6.17
KB
-rwxr-xr-x
linux-version
2.63
KB
-rwxr-xr-x
linux32
18.13
KB
-rwxr-xr-x
linux64
18.13
KB
-rwxr-xr-x
ln
66.23
KB
-rwxr-xr-x
lnstat
22.27
KB
-rwxr-xr-x
loadkeys
210.73
KB
-rwxr-xr-x
loadunimap
26.05
KB
-rwxr-xr-x
locale
49.33
KB
-rwxr-xr-x
locale-check
9.94
KB
-rwxr-xr-x
localectl
22
KB
-rwxr-xr-x
localedef
291.02
KB
-rwxr-xr-x
logger
46.57
KB
-rwxr-xr-x
login
51.48
KB
-rwxr-xr-x
loginctl
54.15
KB
-rwxr-xr-x
logname
30.22
KB
-rwxr-xr-x
logresolve
9.94
KB
-rwxr-xr-x
look
10.14
KB
-rwxr-xr-x
lorder
2.82
KB
-rwxr-xr-x
lowntfs-3g
106.63
KB
-rwxr-xr-x
ls
134.66
KB
-rwxr-xr-x
lsattr
14.09
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lsblk
118.01
KB
-rwxr-xr-x
lscpu
94.01
KB
-rwxr-xr-x
lshw
732.93
KB
-rwxr-xr-x
lsinitramfs
706
B
-rwxr-xr-x
lsipc
86.01
KB
-rwxr-xr-x
lslocks
34.32
KB
-rwxr-xr-x
lslogins
62.03
KB
-rwxr-xr-x
lsmem
62.01
KB
-rwxr-xr-x
lsmod
162.18
KB
-rwxr-xr-x
lsns
46.02
KB
-rwxr-xr-x
lsof
191.38
KB
-rwxr-xr-x
lspci
79.64
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lsusb
242.34
KB
-rwxr-xr-x
ltrace
320.13
KB
-rwxr-xr-x
lz4
170.05
KB
-rwxr-xr-x
lz4c
170.05
KB
-rwxr-xr-x
lz4cat
170.05
KB
-rwxr-xr-x
lzcat
78.26
KB
-rwxr-xr-x
lzcmp
6.48
KB
-rwxr-xr-x
lzdiff
6.48
KB
-rwxr-xr-x
lzegrep
5.76
KB
-rwxr-xr-x
lzfgrep
5.76
KB
-rwxr-xr-x
lzgrep
5.76
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
78.26
KB
-rwxr-xr-x
lzmainfo
10.01
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
mailmail3
388
B
-rwxr-xr-x
man
108.57
KB
-rwxr-xr-x
man-recode
26.55
KB
-rwxr-xr-x
mandb
134.84
KB
-rwxr-xr-x
manifest
1.9
KB
-rwxr-xr-x
manpath
34.4
KB
-rwxr-xr-x
mapscrn
22.05
KB
-rwxr-xr-x
mariadb
3.89
MB
-rwxr-xr-x
mariadb-check
3.66
MB
-rwxr-xr-x
mawk
150.49
KB
-rwxr-xr-x
mcookie
30.08
KB
-rwxr-xr-x
md5sum
42.23
KB
-rwxr-xr-x
md5sum.textutils
42.23
KB
-rwxr-xr-x
mdig
46.18
KB
-rwxr-xr-x
mesg
14.01
KB
-rwxr-xr-x
migrate-pubring-from-classic-gpg
2.99
KB
-rwxr-xr-x
miniterm
34.28
KB
-rwxr-xr-x
mk_modmap
15.78
KB
-rwxr-xr-x
mkdir
74.22
KB
-rwxr-xr-x
mkenvimage
13.93
KB
-rwxr-xr-x
mkfifo
58.22
KB
-rwxr-xr-x
mkimage
276.29
KB
-rwxr-xr-x
mknod
62.22
KB
-rwxr-xr-x
mksquashfs
205.54
KB
-rwxr-xr-x
mksunxiboot
9.93
KB
-rwxr-xr-x
mktemp
42.22
KB
-rwxr-xr-x
mmcli
244.93
KB
-rwxr-xr-x
more
37.93
KB
-rwxr-xr-x
mount
46.01
KB
-rwsr-xr-x
mountpoint
14.01
KB
-rwxr-xr-x
mt
78.41
KB
-rwxr-xr-x
mt-gnu
78.41
KB
-rwxr-xr-x
mtr
72.02
KB
-rwxr-xr-x
mtr-packet
30.09
KB
-rwxr-xr-x
mv
130.24
KB
-rwxr-xr-x
mysql
3.89
MB
-rwxr-xr-x
mysql_embedded
18.68
MB
-rwxr-xr-x
mysql_find_rows
3.21
KB
-rwxr-xr-x
mysql_fix_extensions
1.22
KB
-rwxr-xr-x
mysql_waitpid
3.35
MB
-rwxr-xr-x
mysqlaccess
109.3
KB
-rwxr-xr-x
mysqladmin
3.68
MB
-rwxr-xr-x
mysqlanalyze
3.66
MB
-rwxr-xr-x
mysqlcheck
3.66
MB
-rwxr-xr-x
mysqldump
3.74
MB
-rwxr-xr-x
mysqldumpslow
8.05
KB
-rwxr-xr-x
mysqlimport
3.65
MB
-rwxr-xr-x
mysqloptimize
3.66
MB
-rwxr-xr-x
mysqlrepair
3.66
MB
-rwxr-xr-x
mysqlreport
50.03
KB
-rwxr-xr-x
mysqlshow
3.65
MB
-rwxr-xr-x
mysqlslap
3.67
MB
-rwxr-xr-x
mytop
63.3
KB
-rwxr-xr-x
namei
30.01
KB
-rwxr-xr-x
nano
316.48
KB
-rwxr-xr-x
nawk
686.1
KB
-rwxr-xr-x
nc
38.41
KB
-rwxr-xr-x
nc.openbsd
38.41
KB
-rwxr-xr-x
ncal
28.64
KB
-rwxr-xr-x
neqn
913
B
-rwxr-xr-x
netcat
38.41
KB
-rwxr-xr-x
netkit-ftp
102.46
KB
-rwxr-xr-x
netstat
150.28
KB
-rwxr-xr-x
networkctl
66.05
KB
-rwxr-xr-x
networkd-dispatcher
19.71
KB
-rwxr-xr-x
newgrp
39.45
KB
-rwsr-xr-x
ngettext
34.01
KB
-rwxr-xr-x
nice
34.22
KB
-rwxr-xr-x
nisdomainname
18.01
KB
-rwxr-xr-x
nl
38.3
KB
-rwxr-xr-x
nohup
34.22
KB
-rwxr-xr-x
nproc
34.22
KB
-rwxr-xr-x
nroff
3.22
KB
-rwxr-xr-x
nsenter
30.2
KB
-rwxr-xr-x
nslookup
114.54
KB
-rwxr-xr-x
nstat
74.02
KB
-rwxr-xr-x
nsupdate
66.29
KB
-rwxr-xr-x
ntfs-3g
142.66
KB
-rwxr-xr-x
ntfs-3g.probe
10.01
KB
-rwxr-xr-x
ntfscat
30.04
KB
-rwxr-xr-x
ntfscluster
34.04
KB
-rwxr-xr-x
ntfscmp
34.04
KB
-rwxr-xr-x
ntfsdecrypt
46.05
KB
-rwxr-xr-x
ntfsfallocate
34.05
KB
-rwxr-xr-x
ntfsfix
42.14
KB
-rwxr-xr-x
ntfsinfo
54.05
KB
-rwxr-xr-x
ntfsls
31.09
KB
-rwxr-xr-x
ntfsmove
30.04
KB
-rwxr-xr-x
ntfsrecover
118.13
KB
-rwxr-xr-x
ntfssecaudit
86.52
KB
-rwxr-xr-x
ntfstruncate
37.97
KB
-rwxr-xr-x
ntfsusermap
29.96
KB
-rwxr-xr-x
ntfswipe
46.55
KB
-rwxr-xr-x
numfmt
74.27
KB
-rwxr-xr-x
od
66.23
KB
-rwxr-xr-x
oem-getlogs
8.37
KB
-rwxr-xr-x
on_ac_power
2.18
KB
-rwxr-xr-x
openssl
695.13
KB
-rwxr-xr-x
openvt
18.35
KB
-rwxr-xr-x
pager
179.38
KB
-rwxr-xr-x
paperconf
9.93
KB
-rwxr-xr-x
partx
110.02
KB
-rwxr-xr-x
passwd
62.25
KB
-rwsr-xr-x
paste
34.23
KB
-rwxr-xr-x
pastebinit
16.13
KB
-rwxr-xr-x
pasteurize
388
B
-rwxr-xr-x
patch
182.29
KB
-rwxr-xr-x
pathchk
30.22
KB
-rwxr-xr-x
pbget
2.51
KB
-rwxr-xr-x
pbput
2.51
KB
-rwxr-xr-x
pbputs
2.51
KB
-rwxr-xr-x
pbr
152
B
-rwxr-xr-x
pdb3
61.27
KB
-rwxr-xr-x
pdb3.8
61.27
KB
-rwxr-xr-x
pdf2dsc
698
B
-rwxr-xr-x
pdf2ps
909
B
-rwxr-xr-x
peekfd
14.15
KB
-rwxr-xr-x
perl
3.17
MB
-rwxr-xr-x
perl5.30-aarch64-linux-gnu
10.09
KB
-rwxr-xr-x
perl5.30.0
3.17
MB
-rwxr-xr-x
perlbug
45.28
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
45.28
KB
-rwxr-xr-x
pf2afm
498
B
-rwxr-xr-x
pfbtopfa
516
B
-rwxr-xr-x
pftp
102.46
KB
-rwxr-xr-x
pgrep
26.02
KB
-rwxr-xr-x
phar
14.54
KB
-rwxr-xr-x
phar.phar
14.54
KB
-rwxr-xr-x
phar.phar7.4
14.54
KB
-rwxr-xr-x
phar.phar8.0
15.02
KB
-rwxr-xr-x
phar7.4
14.54
KB
-rwxr-xr-x
phar7.4.phar
14.54
KB
-rwxr-xr-x
phar8.0
15.02
KB
-rwxr-xr-x
phar8.0.phar
15.02
KB
-rwxr-xr-x
php
4.45
MB
-rwxr-xr-x
php7.4
4.45
MB
-rwxr-xr-x
php8.0
4.63
MB
-rwxr-xr-x
pic
192.1
KB
-rwxr-xr-x
pico
316.48
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
22.21
KB
-rwxr-xr-x
pinentry
58.45
KB
-rwxr-xr-x
pinentry-curses
58.45
KB
-rwxr-xr-x
ping
74.76
KB
-rwxr-xr-x
ping4
74.76
KB
-rwxr-xr-x
ping6
74.76
KB
-rwxr-xr-x
pinky
38.23
KB
-rwxr-xr-x
pkaction
14.09
KB
-rwxr-xr-x
pkcheck
18.09
KB
-rwxr-xr-x
pkcon
66.09
KB
-rwxr-xr-x
pkexec
26.21
KB
-rwsr-xr-x
pkill
26.02
KB
-rwxr-xr-x
pkmon
18.09
KB
-rwxr-xr-x
pkttyagent
14.09
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
14.05
KB
-rwxr-xr-x
plymouth
41.93
KB
-rwxr-xr-x
pmap
30.02
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.68
KB
-rwxr-xr-x
pod2text
10.55
KB
-rwxr-xr-x
pod2usage
3.86
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
pollinate
8.54
KB
-rwxr-xr-x
pphs
404
B
-rwxr-xr-x
pr
70.28
KB
-rwxr-xr-x
preconv
58.29
KB
-rwxr-xr-x
print
18.05
KB
-rwxr-xr-x
printafm
395
B
-rwxr-xr-x
printenv
30.22
KB
-rwxr-xr-x
printerbanner
21.93
KB
-rwxr-xr-x
printf
46.22
KB
-rwxr-xr-x
prlimit
34.51
KB
-rwxr-xr-x
pro
442
B
-rwxr-xr-x
prove
13.33
KB
-rwxr-xr-x
prtstat
14.1
KB
-rwxr-xr-x
ps
134.23
KB
-rwxr-xr-x
ps2ascii
631
B
-rwxr-xr-x
ps2epsi
2.69
KB
-rwxr-xr-x
ps2pdf
272
B
-rwxr-xr-x
ps2pdf12
215
B
-rwxr-xr-x
ps2pdf13
215
B
-rwxr-xr-x
ps2pdf14
215
B
-rwxr-xr-x
ps2pdfwr
1.05
KB
-rwxr-xr-x
ps2ps
647
B
-rwxr-xr-x
ps2ps2
669
B
-rwxr-xr-x
ps2txt
631
B
-rwxr-xr-x
psfaddtable
17.93
KB
-rwxr-xr-x
psfgettable
17.93
KB
-rwxr-xr-x
psfstriptable
17.93
KB
-rwxr-xr-x
psfxtable
17.93
KB
-rwxr-xr-x
pslog
9.93
KB
-rwxr-xr-x
pstree
30.88
KB
-rwxr-xr-x
pstree.x11
30.88
KB
-rwxr-xr-x
ptar
3.47
KB
-rwxr-xr-x
ptardiff
2.57
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
66.27
KB
-rwxr-xr-x
purge-old-kernels
1.12
KB
-rwxr-xr-x
pwd
34.22
KB
-rwxr-xr-x
pwdx
10.01
KB
-rwxr-xr-x
py3clean
7.63
KB
-rwxr-xr-x
py3compile
11.84
KB
-rwxr-xr-x
py3versions
11.44
KB
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.8
79
B
-rwxr-xr-x
pygettext3
21.03
KB
-rwxr-xr-x
pygettext3.8
21.03
KB
-rwxr-xr-x
pyhtmlizer3
392
B
-rwxr-xr-x
pyjwt3
372
B
-rwxr-xr-x
python3
4.98
MB
-rwxr-xr-x
python3-futurize
384
B
-rwxr-xr-x
python3-pasteurize
388
B
-rwxr-xr-x
python3-pbr
152
B
-rwxr-xr-x
python3.8
4.98
MB
-rwxr-xr-x
rbash
1.16
MB
-rwxr-xr-x
rcp
110.17
KB
-rwxr-xr-x
rdma
130.02
KB
-rwxr-xr-x
readlink
42.22
KB
-rwxr-xr-x
realpath
42.23
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
rename.ul
18.01
KB
-rwxr-xr-x
renice
14.01
KB
-rwxr-xr-x
rescan-scsi-bus.sh
38.15
KB
-rwxr-xr-x
reset
22.09
KB
-rwxr-xr-x
resizepart
58.01
KB
-rwxr-xr-x
resolvectl
118.21
KB
-rwxr-xr-x
rev
10.01
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rlogin
750.87
KB
-rwxr-xr-x
rm
62.23
KB
-rwxr-xr-x
rmdir
38.22
KB
-rwxr-xr-x
rnano
316.48
KB
-rwxr-xr-x
rotatelogs
18.01
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rrsync
7.07
KB
-rwxr-xr-x
rsh
750.87
KB
-rwxr-xr-x
rsync
512.41
KB
-rwxr-xr-x
rtstat
22.27
KB
-rwxr-xr-x
run-mailcap
18.05
KB
-rwxr-xr-x
run-one
3.51
KB
-rwxr-xr-x
run-one-constantly
3.51
KB
-rwxr-xr-x
run-one-until-failure
3.51
KB
-rwxr-xr-x
run-one-until-success
3.51
KB
-rwxr-xr-x
run-parts
22.28
KB
-rwxr-xr-x
run-this-one
3.51
KB
-rwxr-xr-x
runcon
34.22
KB
-rwxr-xr-x
rview
2.82
MB
-rwxr-xr-x
rvim
2.82
MB
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
scp
110.17
KB
-rwxr-xr-x
screen
466.66
KB
-rwxr-xr-x
screendump
13.93
KB
-rwxr-xr-x
script
46.01
KB
-rwxr-xr-x
scriptreplay
26.01
KB
-rwxr-xr-x
scsi_logging_level
8.38
KB
-rwxr-xr-x
scsi_mandat
3.52
KB
-rwxr-xr-x
scsi_readcap
1.3
KB
-rwxr-xr-x
scsi_ready
1.09
KB
-rwxr-xr-x
scsi_satl
3.77
KB
-rwxr-xr-x
scsi_start
1.25
KB
-rwxr-xr-x
scsi_stop
1.44
KB
-rwxr-xr-x
scsi_temperature
936
B
-rwxr-xr-x
sdiff
46.02
KB
-rwxr-xr-x
sed
110.33
KB
-rwxr-xr-x
see
18.05
KB
-rwxr-xr-x
select-editor
2.38
KB
-rwxr-xr-x
sensible-browser
1.2
KB
-rwxr-xr-x
sensible-editor
1.14
KB
-rwxr-xr-x
sensible-pager
452
B
-rwxr-xr-x
seq
50.22
KB
-rwxr-xr-x
setarch
18.13
KB
-rwxr-xr-x
setfont
42.05
KB
-rwxr-xr-x
setkeycodes
14.01
KB
-rwxr-xr-x
setleds
13.98
KB
-rwxr-xr-x
setlogcons
14.01
KB
-rwxr-xr-x
setmetamode
10.02
KB
-rwxr-xr-x
setpci
26.09
KB
-rwxr-xr-x
setpriv
42.02
KB
-rwxr-xr-x
setsid
14.01
KB
-rwxr-xr-x
setterm
42.01
KB
-rwxr-xr-x
setupcon
38.31
KB
-rwxr-xr-x
sftp
162.37
KB
-rwxr-xr-x
sg
39.45
KB
-rwsr-xr-x
sg_bg_ctl
10.12
KB
-rwxr-xr-x
sg_compare_and_write
18.52
KB
-rwxr-xr-x
sg_copy_results
18.91
KB
-rwxr-xr-x
sg_dd
41.95
KB
-rwxr-xr-x
sg_decode_sense
18.37
KB
-rwxr-xr-x
sg_emc_trespass
9.93
KB
-rwxr-xr-x
sg_format
30.9
KB
-rwxr-xr-x
sg_get_config
26.99
KB
-rwxr-xr-x
sg_get_lba_status
18.49
KB
-rwxr-xr-x
sg_ident
14.21
KB
-rwxr-xr-x
sg_inq
115.24
KB
-rwxr-xr-x
sg_logs
142.59
KB
-rwxr-xr-x
sg_luns
22.4
KB
-rwxr-xr-x
sg_map
13.93
KB
-rwxr-xr-x
sg_map26
22.32
KB
-rwxr-xr-x
sg_modes
41.21
KB
-rwxr-xr-x
sg_opcodes
26.63
KB
-rwxr-xr-x
sg_persist
31.7
KB
-rwxr-xr-x
sg_prevent
10.12
KB
-rwxr-xr-x
sg_raw
22.43
KB
-rwxr-xr-x
sg_rbuf
18.34
KB
-rwxr-xr-x
sg_rdac
13.95
KB
-rwxr-xr-x
sg_read
21.94
KB
-rwxr-xr-x
sg_read_attr
32.22
KB
-rwxr-xr-x
sg_read_block_limits
10.15
KB
-rwxr-xr-x
sg_read_buffer
18.58
KB
-rwxr-xr-x
sg_read_long
14.3
KB
-rwxr-xr-x
sg_readcap
18.4
KB
-rwxr-xr-x
sg_reassign
14.27
KB
-rwxr-xr-x
sg_referrals
14.27
KB
-rwxr-xr-x
sg_rep_zones
18.35
KB
-rwxr-xr-x
sg_requests
14.34
KB
-rwxr-xr-x
sg_reset
14.27
KB
-rwxr-xr-x
sg_reset_wp
10.21
KB
-rwxr-xr-x
sg_rmsn
10.12
KB
-rwxr-xr-x
sg_rtpg
14.21
KB
-rwxr-xr-x
sg_safte
18.3
KB
-rwxr-xr-x
sg_sanitize
22.62
KB
-rwxr-xr-x
sg_sat_identify
14.34
KB
-rwxr-xr-x
sg_sat_phy_event
14.62
KB
-rwxr-xr-x
sg_sat_read_gplog
14.34
KB
-rwxr-xr-x
sg_sat_set_features
14.3
KB
-rwxr-xr-x
sg_scan
13.94
KB
-rwxr-xr-x
sg_seek
14.49
KB
-rwxr-xr-x
sg_senddiag
22.8
KB
-rwxr-xr-x
sg_ses
111.46
KB
-rwxr-xr-x
sg_ses_microcode
22.93
KB
-rwxr-xr-x
sg_start
18.46
KB
-rwxr-xr-x
sg_stpg
18.34
KB
-rwxr-xr-x
sg_stream_ctl
14.3
KB
-rwxr-xr-x
sg_sync
14.27
KB
-rwxr-xr-x
sg_test_rwbuf
14.22
KB
-rwxr-xr-x
sg_timestamp
18.45
KB
-rwxr-xr-x
sg_turs
14.27
KB
-rwxr-xr-x
sg_unmap
18.37
KB
-rwxr-xr-x
sg_verify
14.49
KB
-rwxr-xr-x
sg_vpd
101.93
KB
-rwxr-xr-x
sg_wr_mode
18.34
KB
-rwxr-xr-x
sg_write_buffer
18.84
KB
-rwxr-xr-x
sg_write_long
14.37
KB
-rwxr-xr-x
sg_write_same
18.52
KB
-rwxr-xr-x
sg_write_verify
18.4
KB
-rwxr-xr-x
sg_write_x
47.21
KB
-rwxr-xr-x
sg_xcopy
33.95
KB
-rwxr-xr-x
sg_zone
14.41
KB
-rwxr-xr-x
sginfo
71.63
KB
-rwxr-xr-x
sgm_dd
29.94
KB
-rwxr-xr-x
sgp_dd
33.94
KB
-rwxr-xr-x
sh
134.5
KB
-rwxr-xr-x
sha1sum
46.23
KB
-rwxr-xr-x
sha224sum
50.23
KB
-rwxr-xr-x
sha256sum
50.23
KB
-rwxr-xr-x
sha384sum
54.23
KB
-rwxr-xr-x
sha512sum
54.23
KB
-rwxr-xr-x
shasum
9.74
KB
-rwxr-xr-x
showconsolefont
18.01
KB
-rwxr-xr-x
showkey
14.2
KB
-rwxr-xr-x
shred
62.23
KB
-rwxr-xr-x
shuf
54.22
KB
-rwxr-xr-x
skill
34.01
KB
-rwxr-xr-x
slabtop
26.02
KB
-rwxr-xr-x
sleep
30.22
KB
-rwxr-xr-x
slogin
750.87
KB
-rwxr-xr-x
snap
15.7
MB
-rwxr-xr-x
snapctl
6.01
MB
-rwxr-xr-x
snapfuse
46.22
KB
-rwxr-xr-x
snice
34.01
KB
-rwxr-xr-x
soelim
38.29
KB
-rwxr-xr-x
sort
106.48
KB
-rwxr-xr-x
sos
612
B
-rwxr-xr-x
sos-collector
1.04
KB
-rwxr-xr-x
sosreport
1.03
KB
-rwxr-xr-x
splain
18.7
KB
-rwxr-xr-x
split
54.65
KB
-rwxr-xr-x
splitfont
9.93
KB
-rwxr-xr-x
ss
160.54
KB
-rwxr-xr-x
ssh
750.87
KB
-rwxr-xr-x
ssh-add
346.13
KB
-rwxr-xr-x
ssh-agent
330.13
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
10.41
KB
-rwxr-xr-x
ssh-import-id
409
B
-rwxr-xr-x
ssh-import-id-gh
785
B
-rwxr-xr-x
ssh-import-id-lp
785
B
-rwxr-xr-x
ssh-keygen
446.31
KB
-rwxr-xr-x
ssh-keyscan
438.3
KB
-rwxr-xr-x
stat
78.23
KB
-rwxr-xr-x
static-sh
1.68
MB
-rwxr-xr-x
stdbuf
46.22
KB
-rwxr-xr-x
strace
1.21
MB
-rwxr-xr-x
strace-log-merge
1.78
KB
-rwxr-xr-x
stty
70.23
KB
-rwxr-xr-x
su
58.03
KB
-rwsr-xr-x
sudo
153.94
KB
-rwsr-xr-x
sudoedit
153.94
KB
-rwsr-xr-x
sudoreplay
58.76
KB
-rwxr-xr-x
sum
50.23
KB
-rwxr-xr-x
symcryptrun
114.92
KB
-rwxr-xr-x
sync
30.22
KB
-rwxr-xr-x
systemctl
944.84
KB
-rwxr-xr-x
systemd
1.48
MB
-rwxr-xr-x
systemd-analyze
1.45
MB
-rwxr-xr-x
systemd-ask-password
14.12
KB
-rwxr-xr-x
systemd-cat
14.01
KB
-rwxr-xr-x
systemd-cgls
14.11
KB
-rwxr-xr-x
systemd-cgtop
30.05
KB
-rwxr-xr-x
systemd-delta
22
KB
-rwxr-xr-x
systemd-detect-virt
14
KB
-rwxr-xr-x
systemd-escape
14
KB
-rwxr-xr-x
systemd-hwdb
98.43
KB
-rwxr-xr-x
systemd-id128
18
KB
-rwxr-xr-x
systemd-inhibit
18.02
KB
-rwxr-xr-x
systemd-machine-id-setup
22.1
KB
-rwxr-xr-x
systemd-mount
46.23
KB
-rwxr-xr-x
systemd-notify
14.01
KB
-rwxr-xr-x
systemd-path
14
KB
-rwxr-xr-x
systemd-resolve
118.21
KB
-rwxr-xr-x
systemd-run
54.28
KB
-rwxr-xr-x
systemd-socket-activate
22
KB
-rwxr-xr-x
systemd-stdio-bridge
14.01
KB
-rwxr-xr-x
systemd-sysusers
46.34
KB
-rwxr-xr-x
systemd-tmpfiles
74.22
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
26
KB
-rwxr-xr-x
systemd-umount
46.23
KB
-rwxr-xr-x
tabs
14.09
KB
-rwxr-xr-x
tac
38.22
KB
-rwxr-xr-x
tail
66.25
KB
-rwxr-xr-x
tar
441.21
KB
-rwxr-xr-x
taskset
30.01
KB
-rwxr-xr-x
tbl
130.29
KB
-rwxr-xr-x
tee
34.23
KB
-rwxr-xr-x
telnet
112.18
KB
-rwxr-xr-x
telnet.netkit
112.18
KB
-rwxr-xr-x
tempfile
10.05
KB
-rwxr-xr-x
test
46.21
KB
-rwxr-xr-x
tic
82.2
KB
-rwxr-xr-x
time
14.58
KB
-rwxr-xr-x
timedatectl
38
KB
-rwxr-xr-x
timeout
42.63
KB
-rwxr-xr-x
tkconch3
386
B
-rwxr-xr-x
tload
22.02
KB
-rwxr-xr-x
tmux
652.09
KB
-rwxr-xr-x
toe
18.09
KB
-rwxr-xr-x
top
113.74
KB
-rwxr-xr-x
touch
86.23
KB
-rwxr-xr-x
tput
22.12
KB
-rwxr-xr-x
tr
46.22
KB
-rwxr-xr-x
tracepath
17.93
KB
-rwxr-xr-x
traceroute6
25.93
KB
-rwxr-xr-x
traceroute6.iputils
25.93
KB
-rwxr-xr-x
trial3
382
B
-rwxr-xr-x
troff
735.7
KB
-rwxr-xr-x
true
30.22
KB
-rwxr-xr-x
truncate
34.22
KB
-rwxr-xr-x
tset
22.09
KB
-rwxr-xr-x
tsort
34.22
KB
-rwxr-xr-x
tty
30.22
KB
-rwxr-xr-x
twist3
382
B
-rwxr-xr-x
twistd3
384
B
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
ua
442
B
-rwxr-xr-x
ubuntu-advantage
442
B
-rwxr-xr-x
ubuntu-bug
2.5
KB
-rwxr-xr-x
ubuntu-core-launcher
143.24
KB
-rwsr-xr-x
ubuntu-distro-info
22.66
KB
-rwxr-xr-x
ubuntu-security-status
22.25
KB
-rwxr-xr-x
ucf
39.73
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
udevadm
915.84
KB
-rwxr-xr-x
udisksctl
54.16
KB
-rwxr-xr-x
ul
13.95
KB
-rwxr-xr-x
ulockmgr_server
13.93
KB
-rwxr-xr-x
umount
30.01
KB
-rwsr-xr-x
uname
34.23
KB
-rwxr-xr-x
unattended-upgrade
96.99
KB
-rwxr-xr-x
unattended-upgrades
96.99
KB
-rwxr-xr-x
uncompress
2.29
KB
-rwxr-xr-x
unexpand
34.23
KB
-rwxr-xr-x
unicode_start
2.7
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
42.23
KB
-rwxr-xr-x
unlink
30.22
KB
-rwxr-xr-x
unlz4
170.05
KB
-rwxr-xr-x
unlzma
78.26
KB
-rwxr-xr-x
unmkinitramfs
3.59
KB
-rwxr-xr-x
unshare
34.2
KB
-rwxr-xr-x
unsquashfs
111.7
KB
-rwxr-xr-x
unxz
78.26
KB
-rwxr-xr-x
unzip
170.08
KB
-rwxr-xr-x
unzipsfx
78.07
KB
-rwxr-xr-x
update-alternatives
46.15
KB
-rwxr-xr-x
update-mime-database
54.06
KB
-rwxr-xr-x
uptime
10.01
KB
-rwxr-xr-x
usb-devices
4
KB
-rwxr-xr-x
usbhid-dump
26.16
KB
-rwxr-xr-x
usbreset
10.09
KB
-rwxr-xr-x
users
30.22
KB
-rwxr-xr-x
utmpdump
26.01
KB
-rwxr-xr-x
uuidgen
14.01
KB
-rwxr-xr-x
uuidparse
34.01
KB
-rwxr-xr-x
vcs-run
6.75
KB
-rwxr-xr-x
vdir
134.66
KB
-rwxr-xr-x
vi
2.82
MB
-rwxr-xr-x
view
2.82
MB
-rwxr-xr-x
vigpg
2.58
KB
-rwxr-xr-x
vim
2.82
MB
-rwxr-xr-x
vim.basic
2.82
MB
-rwxr-xr-x
vim.tiny
1.33
MB
-rwxr-xr-x
vimdiff
2.82
MB
-rwxr-xr-x
vimtutor
2.07
KB
-rwxr-xr-x
vmstat
38.03
KB
-rwxr-xr-x
volname
9.93
KB
-rwxr-xr-x
w
18.01
KB
-rwxr-xr-x
w.procps
18.01
KB
-rwxr-xr-x
wall
30.01
KB
-rwxr-xr-x
watch
34.33
KB
-rwxr-xr-x
watchgnupg
14.09
KB
-rwxr-xr-x
wc
42.23
KB
-rwxr-xr-x
wdctl
34.01
KB
-rwxr-xr-x
wget
507.4
KB
-rwxr-xr-x
whatis
46.88
KB
-rwxr-xr-x
whereis
30.42
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
whiptail
25.95
KB
-rwxr-xr-x
who
46.23
KB
-rwxr-xr-x
whoami
30.22
KB
-rwxr-xr-x
wifi-status
2.06
KB
-rwxr-xr-x
write
13.93
KB
-rwxr-sr-x
xargs
66.12
KB
-rwxr-xr-x
xauth
50.71
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
22.01
KB
-rwxr-xr-x
xsubpp
5.04
KB
-rwxr-xr-x
xxd
18.02
KB
-rwxr-xr-x
xz
78.26
KB
-rwxr-xr-x
xzcat
78.26
KB
-rwxr-xr-x
xzcmp
6.48
KB
-rwxr-xr-x
xzdiff
6.48
KB
-rwxr-xr-x
xzegrep
5.76
KB
-rwxr-xr-x
xzfgrep
5.76
KB
-rwxr-xr-x
xzgrep
5.76
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
yes
30.22
KB
-rwxr-xr-x
ypdomainname
18.01
KB
-rwxr-xr-x
zcat
1.94
KB
-rwxr-xr-x
zcmp
1.64
KB
-rwxr-xr-x
zdiff
5.76
KB
-rwxr-xr-x
zdump
17.99
KB
-rwxr-xr-x
zegrep
29
B
-rwxr-xr-x
zfgrep
29
B
-rwxr-xr-x
zforce
2.03
KB
-rwxr-xr-x
zgrep
7.91
KB
-rwxr-xr-x
zip
179.84
KB
-rwxr-xr-x
zipcloak
80.1
KB
-rwxr-xr-x
zipdetails
49.53
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
170.08
KB
-rwxr-xr-x
zipnote
71.8
KB
-rwxr-xr-x
zipsplit
75.8
KB
-rwxr-xr-x
zless
2.15
KB
-rwxr-xr-x
zmore
1.8
KB
-rwxr-xr-x
znew
4.47
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : dpkg-maintscript-helper
#!/bin/sh # # Copyright © 2007, 2011-2015 Guillem Jover <guillem@debian.org> # Copyright © 2010 Raphaël Hertzog <hertzog@debian.org> # Copyright © 2008 Joey Hess <joeyh@debian.org> # Copyright © 2005 Scott James Remnant (original implementation on www.dpkg.org) # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # The conffile related functions are inspired by # https://wiki.debian.org/DpkgConffileHandling # This script is documented in dpkg-maintscript-helper(1) ## ## Functions to remove an obsolete conffile during upgrade ## rm_conffile() { local CONFFILE="$1" local LASTVERSION="$2" local PACKAGE="$3" if [ "$LASTVERSION" = "--" ]; then LASTVERSION="" PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi if [ "$PACKAGE" = "--" -o -z "$PACKAGE" ]; then PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi # Skip remaining parameters up to -- while [ "$1" != "--" -a $# -gt 0 ]; do shift; done [ $# -gt 0 ] || badusage "missing arguments after --" shift [ -n "$PACKAGE" ] || error "couldn't identify the package" [ -n "$1" ] || error "maintainer script parameters are missing" [ -n "$DPKG_MAINTSCRIPT_NAME" ] || \ error "environment variable DPKG_MAINTSCRIPT_NAME is required" [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] || \ error "environment variable DPKG_MAINTSCRIPT_PACKAGE is required" [ "${CONFFILE}" != "${CONFFILE#/}" ] || \ error "conffile '$CONFFILE' is not an absolute path" validate_optional_version "$LASTVERSION" debug "Executing $0 rm_conffile in $DPKG_MAINTSCRIPT_NAME" \ "of $DPKG_MAINTSCRIPT_PACKAGE" debug "CONFFILE=$CONFFILE PACKAGE=$PACKAGE" \ "LASTVERSION=$LASTVERSION ACTION=$1 PARAM=$2" case "$DPKG_MAINTSCRIPT_NAME" in preinst) if [ "$1" = "install" -o "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then prepare_rm_conffile "$CONFFILE" "$PACKAGE" fi ;; postinst) if [ "$1" = "configure" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then finish_rm_conffile "$CONFFILE" fi ;; postrm) if [ "$1" = "purge" ]; then rm -f "$CONFFILE.dpkg-bak" "$CONFFILE.dpkg-remove" \ "$CONFFILE.dpkg-backup" fi if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then abort_rm_conffile "$CONFFILE" "$PACKAGE" fi ;; *) debug "$0 rm_conffile not required in $DPKG_MAINTSCRIPT_NAME" ;; esac } prepare_rm_conffile() { local CONFFILE="$1" local PACKAGE="$2" [ -e "$CONFFILE" ] || return 0 ensure_package_owns_file "$PACKAGE" "$CONFFILE" || return 0 local md5sum old_md5sum md5sum="$(md5sum "$CONFFILE" | sed -e 's/ .*//')" old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$PACKAGE" | \ sed -n -e "\\'^ $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" if [ "$md5sum" != "$old_md5sum" ]; then mv -f "$CONFFILE" "$CONFFILE.dpkg-backup" else mv -f "$CONFFILE" "$CONFFILE.dpkg-remove" fi } finish_rm_conffile() { local CONFFILE="$1" if [ -e "$CONFFILE.dpkg-backup" ]; then echo "Obsolete conffile $CONFFILE has been modified by you." echo "Saving as $CONFFILE.dpkg-bak ..." mv -f "$CONFFILE.dpkg-backup" "$CONFFILE.dpkg-bak" fi if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Removing obsolete conffile $CONFFILE ..." rm -f "$CONFFILE.dpkg-remove" fi } abort_rm_conffile() { local CONFFILE="$1" local PACKAGE="$2" ensure_package_owns_file "$PACKAGE" "$CONFFILE" || return 0 if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Reinstalling $CONFFILE that was moved away" mv "$CONFFILE.dpkg-remove" "$CONFFILE" fi if [ -e "$CONFFILE.dpkg-backup" ]; then echo "Reinstalling $CONFFILE that was backed-up" mv "$CONFFILE.dpkg-backup" "$CONFFILE" fi } ## ## Functions to rename a conffile during upgrade ## mv_conffile() { local OLDCONFFILE="$1" local NEWCONFFILE="$2" local LASTVERSION="$3" local PACKAGE="$4" if [ "$LASTVERSION" = "--" ]; then LASTVERSION="" PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi if [ "$PACKAGE" = "--" -o -z "$PACKAGE" ]; then PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi # Skip remaining parameters up to -- while [ "$1" != "--" -a $# -gt 0 ]; do shift; done [ $# -gt 0 ] || badusage "missing arguments after --" shift [ -n "$PACKAGE" ] || error "couldn't identify the package" [ -n "$1" ] || error "maintainer script parameters are missing" [ -n "$DPKG_MAINTSCRIPT_NAME" ] || \ error "environment variable DPKG_MAINTSCRIPT_NAME is required" [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] || \ error "environment variable DPKG_MAINTSCRIPT_PACKAGE is required" [ "${OLDCONFFILE}" != "${OLDCONFFILE#/}" ] || \ error "old-conffile '$OLDCONFFILE' is not an absolute path" [ "${NEWCONFFILE}" != "${NEWCONFFILE#/}" ] || \ error "new-conffile '$NEWCONFFILE' is not an absolute path" validate_optional_version "$LASTVERSION" debug "Executing $0 mv_conffile in $DPKG_MAINTSCRIPT_NAME" \ "of $DPKG_MAINTSCRIPT_PACKAGE" debug "CONFFILE=$OLDCONFFILE -> $NEWCONFFILE PACKAGE=$PACKAGE" \ "LASTVERSION=$LASTVERSION ACTION=$1 PARAM=$2" case "$DPKG_MAINTSCRIPT_NAME" in preinst) if [ "$1" = "install" -o "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then prepare_mv_conffile "$OLDCONFFILE" "$PACKAGE" fi ;; postinst) if [ "$1" = "configure" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then finish_mv_conffile "$OLDCONFFILE" "$NEWCONFFILE" "$PACKAGE" fi ;; postrm) if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then abort_mv_conffile "$OLDCONFFILE" "$PACKAGE" fi ;; *) debug "$0 mv_conffile not required in $DPKG_MAINTSCRIPT_NAME" ;; esac } prepare_mv_conffile() { local CONFFILE="$1" local PACKAGE="$2" [ -e "$CONFFILE" ] || return 0 ensure_package_owns_file "$PACKAGE" "$CONFFILE" || return 0 local md5sum old_md5sum md5sum="$(md5sum "$CONFFILE" | sed -e 's/ .*//')" old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$PACKAGE" | \ sed -n -e "\\'^ $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" if [ "$md5sum" = "$old_md5sum" ]; then mv -f "$CONFFILE" "$CONFFILE.dpkg-remove" fi } finish_mv_conffile() { local OLDCONFFILE="$1" local NEWCONFFILE="$2" local PACKAGE="$3" rm -f "$OLDCONFFILE.dpkg-remove" [ -e "$OLDCONFFILE" ] || return 0 ensure_package_owns_file "$PACKAGE" "$OLDCONFFILE" || return 0 echo "Preserving user changes to $NEWCONFFILE (renamed from $OLDCONFFILE)..." if [ -e "$NEWCONFFILE" ]; then mv -f "$NEWCONFFILE" "$NEWCONFFILE.dpkg-new" fi mv -f "$OLDCONFFILE" "$NEWCONFFILE" } abort_mv_conffile() { local CONFFILE="$1" local PACKAGE="$2" ensure_package_owns_file "$PACKAGE" "$CONFFILE" || return 0 if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Reinstalling $CONFFILE that was moved away" mv "$CONFFILE.dpkg-remove" "$CONFFILE" fi } ## ## Functions to replace a symlink with a directory ## symlink_to_dir() { local SYMLINK="$1" local SYMLINK_TARGET="$2" local LASTVERSION="$3" local PACKAGE="$4" if [ "$LASTVERSION" = "--" ]; then LASTVERSION="" PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi if [ "$PACKAGE" = "--" -o -z "$PACKAGE" ]; then PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi # Skip remaining parameters up to -- while [ "$1" != "--" -a $# -gt 0 ]; do shift; done [ $# -gt 0 ] || badusage "missing arguments after --" shift [ -n "$DPKG_MAINTSCRIPT_NAME" ] || \ error "environment variable DPKG_MAINTSCRIPT_NAME is required" [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] || \ error "environment variable DPKG_MAINTSCRIPT_PACKAGE is required" [ -n "$PACKAGE" ] || error "cannot identify the package" [ -n "$SYMLINK" ] || error "symlink parameter is missing" [ "${SYMLINK#/}" = "$SYMLINK" ] && \ error "symlink pathname is not an absolute path" [ "${SYMLINK%/}" = "$SYMLINK" ] || \ error "symlink pathname ends with a slash" [ -n "$SYMLINK_TARGET" ] || error "original symlink target is missing" [ -n "$1" ] || error "maintainer script parameters are missing" validate_optional_version "$LASTVERSION" debug "Executing $0 symlink_to_dir in $DPKG_MAINTSCRIPT_NAME" \ "of $DPKG_MAINTSCRIPT_PACKAGE" debug "SYMLINK=$SYMLINK -> $SYMLINK_TARGET PACKAGE=$PACKAGE" \ "LASTVERSION=$LASTVERSION ACTION=$1 PARAM=$2" case "$DPKG_MAINTSCRIPT_NAME" in preinst) if [ "$1" = "install" -o "$1" = "upgrade" ] && [ -n "$2" ] && [ -h "$SYMLINK" ] && symlink_match "$SYMLINK" "$SYMLINK_TARGET" && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then mv -f "$SYMLINK" "${SYMLINK}.dpkg-backup" fi ;; postinst) # We cannot bail depending on the version, as here we only # know what was the last configured version, and we might # have been unpacked, then upgraded with an unpack and thus # never been configured before. if [ "$1" = "configure" ] && [ -h "${SYMLINK}.dpkg-backup" ] && symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" then rm -f "${SYMLINK}.dpkg-backup" fi ;; postrm) if [ "$1" = "purge" ] && [ -h "${SYMLINK}.dpkg-backup" ]; then rm -f "${SYMLINK}.dpkg-backup" fi if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && [ -n "$2" ] && [ ! -e "$SYMLINK" ] && [ -h "${SYMLINK}.dpkg-backup" ] && symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then echo "Restoring backup of $SYMLINK ..." mv "${SYMLINK}.dpkg-backup" "$SYMLINK" fi ;; *) debug "$0 symlink_to_dir not required in $DPKG_MAINTSCRIPT_NAME" ;; esac } ## ## Functions to replace a directory with a symlink ## dir_to_symlink() { local PATHNAME="${1%/}" local SYMLINK_TARGET="$2" local LASTVERSION="$3" local PACKAGE="$4" if [ "$LASTVERSION" = "--" ]; then LASTVERSION="" PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi if [ "$PACKAGE" = "--" -o -z "$PACKAGE" ]; then PACKAGE="$DPKG_MAINTSCRIPT_PACKAGE${DPKG_MAINTSCRIPT_ARCH:+:$DPKG_MAINTSCRIPT_ARCH}" fi # Skip remaining parameters up to -- while [ "$1" != "--" -a $# -gt 0 ]; do shift; done [ $# -gt 0 ] || badusage "missing arguments after --" shift [ -n "$DPKG_MAINTSCRIPT_NAME" ] || \ error "environment variable DPKG_MAINTSCRIPT_NAME is required" [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] || \ error "environment variable DPKG_MAINTSCRIPT_PACKAGE is required" [ -n "$PACKAGE" ] || error "cannot identify the package" [ -n "$PATHNAME" ] || error "directory parameter is missing" [ "${PATHNAME#/}" = "$PATHNAME" ] && \ error "directory parameter is not an absolute path" [ -n "$SYMLINK_TARGET" ] || error "new symlink target is missing" [ -n "$1" ] || error "maintainer script parameters are missing" validate_optional_version "$LASTVERSION" debug "Executing $0 dir_to_symlink in $DPKG_MAINTSCRIPT_NAME" \ "of $DPKG_MAINTSCRIPT_PACKAGE" debug "PATHNAME=$PATHNAME SYMLINK_TARGET=$SYMLINK_TARGET" \ "PACKAGE=$PACKAGE LASTVERSION=$LASTVERSION ACTION=$1 PARAM=$2" case "$DPKG_MAINTSCRIPT_NAME" in preinst) if [ "$1" = "install" -o "$1" = "upgrade" ] && [ -n "$2" ] && [ ! -h "$PATHNAME" ] && [ -d "$PATHNAME" ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then prepare_dir_to_symlink "$PACKAGE" "$PATHNAME" fi ;; postinst) # We cannot bail depending on the version, as here we only # know what was the last configured version, and we might # have been unpacked, then upgraded with an unpack and thus # never been configured before. if [ "$1" = "configure" ] && [ -d "${PATHNAME}.dpkg-backup" ] && [ ! -h "$PATHNAME" ] && [ -d "$PATHNAME" ] && [ -f "$PATHNAME/.dpkg-staging-dir" ]; then finish_dir_to_symlink "$PATHNAME" "$SYMLINK_TARGET" fi ;; postrm) if [ "$1" = "purge" ] && [ -d "${PATHNAME}.dpkg-backup" ]; then rm -rf "${PATHNAME}.dpkg-backup" fi if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && [ -n "$2" ] && [ -d "${PATHNAME}.dpkg-backup" ] && [ \( ! -h "$PATHNAME" -a -d "$PATHNAME" -a \ -f "$PATHNAME/.dpkg-staging-dir" \) -o \ \( -h "$PATHNAME" -a \ \( "$(readlink "$PATHNAME")" = "$SYMLINK_TARGET" -o \ "$(readlink -f "$PATHNAME")" = "$SYMLINK_TARGET" \) \) ] && dpkg --compare-versions -- "$2" le-nl "$LASTVERSION"; then abort_dir_to_symlink "$PATHNAME" fi ;; *) debug "$0 dir_to_symlink not required in $DPKG_MAINTSCRIPT_NAME" ;; esac } prepare_dir_to_symlink() { local PACKAGE="$1" local PATHNAME="$2" local LINE # If there are conffiles we should not perform the switch. dpkg-query -W -f='${Conffiles}\n' "$PACKAGE" | while read -r LINE; do case "$LINE" in "$PATHNAME"/*) error "directory '$PATHNAME' contains conffiles," \ "cannot switch to symlink" ;; esac done # If there are locally created files or files owned by another package # we should not perform the switch. export DPKG_MAINTSCRIPT_HELPER_INTERNAL_API="$version" find "$PATHNAME" -print0 | \ xargs -0 -n1 "$0" _internal_pkg_must_own_file "$PACKAGE" || \ error "directory '$PATHNAME' contains files not owned by" \ "package $PACKAGE, cannot switch to symlink" unset DPKG_MAINTSCRIPT_HELPER_INTERNAL_API # At this point, we know that the directory either contains no files, # or only non-conffiles owned by the package. # # To do the switch we cannot simply replace it with the final symlink # just yet, because dpkg needs to remove any file present in the old # package that have disappeared in the new one, and we do not want to # lose files resolving to the same pathname in the symlink target. # # We cannot replace the directory with a staging symlink either, # because dpkg will update symlinks to their new target. # # So we need to create a staging directory, to avoid removing files # from other packages, and to trap any new files in the directory # to move them to their correct place later on. mv -f "$PATHNAME" "${PATHNAME}.dpkg-backup" mkdir "$PATHNAME" # Mark it as a staging directory, so that we can track things. touch "$PATHNAME/.dpkg-staging-dir" } finish_dir_to_symlink() { local PATHNAME="$1" local SYMLINK_TARGET="$2" # Move the contents of the staging directory to the symlink target, # as those are all new files installed between this package being # unpacked and configured. local ABS_SYMLINK_TARGET if [ "${SYMLINK_TARGET#/}" = "$SYMLINK_TARGET" ]; then ABS_SYMLINK_TARGET="$(dirname "$PATHNAME")/$SYMLINK_TARGET" else ABS_SYMLINK_TARGET="$SYMLINK_TARGET" fi rm "$PATHNAME/.dpkg-staging-dir" find "$PATHNAME" -mindepth 1 -maxdepth 1 -print0 | \ xargs -0 -i% mv -f "%" "$ABS_SYMLINK_TARGET/" # Remove the staging directory. rmdir "$PATHNAME" # Do the actual switch. ln -s "$SYMLINK_TARGET" "$PATHNAME" # We are left behind the old files owned by this package in the backup # directory, just remove it. rm -rf "${PATHNAME}.dpkg-backup" } abort_dir_to_symlink() { local PATHNAME="$1" echo "Restoring backup of $PATHNAME ..." if [ -h "$PATHNAME" ]; then rm -f "$PATHNAME" else # The staging directory must be empty, as no other package # should have been unpacked in between. rm -f "$PATHNAME/.dpkg-staging-dir" rmdir "$PATHNAME" fi mv "${PATHNAME}.dpkg-backup" "$PATHNAME" } # Common functions validate_optional_version() { local VERSION="$1" if [ -z "$VERSION" ]; then return fi if ! VERSIONCHECK=$(dpkg --validate-version -- "$VERSION" 2>&1); then error "$VERSIONCHECK" fi } ensure_package_owns_file() { local PACKAGE="$1" local FILE="$2" if ! dpkg-query -L "$PACKAGE" | grep -F -q -x "$FILE"; then debug "File '$FILE' not owned by package " \ "'$PACKAGE', skipping $command" return 1 fi return 0 } internal_pkg_must_own_file() { local PACKAGE="$1" local FILE="$2" if [ "$DPKG_MAINTSCRIPT_HELPER_INTERNAL_API" != "$version" ]; then error "internal API used by external command" fi if ! ensure_package_owns_file "$PACKAGE" "$FILE"; then error "file '$FILE' not owned by package '$PACKAGE'" fi return 0 } symlink_match() { local SYMLINK="$1" local SYMLINK_TARGET="$2" [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] } # Standard ANSI colors and attributes. COLOR_NORMAL='' COLOR_RESET='[0m' COLOR_BOLD='[1m' COLOR_BLACK='[30m' COLOR_RED='[31m' COLOR_GREEN='[32m' COLOR_YELLOW='[33m' COLOR_BLUE='[34m' COLOR_MAGENTA='[35m' COLOR_CYAN='[36m' COLOR_WHITE='[37m' COLOR_BOLD_BLACK='[1;30m' COLOR_BOLD_RED='[1;31m' COLOR_BOLD_GREEN='[1;32m' COLOR_BOLD_YELLOW='[1;33m' COLOR_BOLD_BLUE='[1;34m' COLOR_BOLD_MAGENTA='[1;35m' COLOR_BOLD_CYAN='[1;36m' COLOR_BOLD_WHITE='[1;37m' setup_colors() { : "${DPKG_COLORS=auto}" case "$DPKG_COLORS" in auto) if [ -t 1 ]; then USE_COLORS=yes else USE_COLORS=no fi ;; always) USE_COLORS=yes ;; *) USE_COLORS=no ;; esac if [ $USE_COLORS = yes ]; then COLOR_PROG="$COLOR_BOLD" COLOR_INFO="$COLOR_GREEN" COLOR_NOTICE="$COLOR_YELLOW" COLOR_WARN="$COLOR_BOLD_YELLOW" COLOR_ERROR="$COLOR_BOLD_RED" else COLOR_RESET="" fi FMT_PROG="$COLOR_PROG$PROGNAME$COLOR_RESET" } debug() { if [ -n "$DPKG_DEBUG" ]; then echo "DEBUG: $FMT_PROG: $*" >&2 fi } error() { echo "$FMT_PROG: ${COLOR_ERROR}error${COLOR_RESET}: $*" >&2 exit 1 } warning() { echo "$FMT_PROG: ${COLOR_WARN}warning${COLOR_RESET}: $*" >&2 } usage() { cat <<END Usage: $PROGNAME <command> <parameter>... -- <maintainer-script-parameter>... Commands: supports <command> Returns 0 (success) if the given command is supported, 1 otherwise. rm_conffile <conffile> [<last-version> [<package>]] Remove obsolete conffile. Must be called in preinst, postinst and postrm. mv_conffile <old-conf> <new-conf> [<last-version> [<package>]] Rename a conffile. Must be called in preinst, postinst and postrm. symlink_to_dir <pathname> <old-symlink-target> [<last-version> [<package>]] Replace a symlink with a directory. Must be called in preinst, postinst and postrm. dir_to_symlink <pathname> <new-symlink-target> [<last-version> [<package>]] Replace a directory with a symlink. Must be called in preinst, postinst and postrm. help Display this usage information. END } badusage() { echo "$FMT_PROG: ${COLOR_ERROR}error${COLOR_RESET}: $1" >&2 echo >&2 echo "Use '$PROGNAME help' for program usage information." >&2 exit 1 } # Main code set -e PROGNAME=$(basename "$0") version="1.19.7" setup_colors command="$1" [ $# -gt 0 ] || badusage "missing command" shift case "$command" in supports) case "$1" in rm_conffile|mv_conffile|symlink_to_dir|dir_to_symlink) code=0 ;; *) code=1 ;; esac if [ -z "$DPKG_MAINTSCRIPT_NAME" ]; then warning "environment variable DPKG_MAINTSCRIPT_NAME missing" code=1 fi if [ -z "$DPKG_MAINTSCRIPT_PACKAGE" ]; then warning "environment variable DPKG_MAINTSCRIPT_PACKAGE missing" code=1 fi exit $code ;; rm_conffile) rm_conffile "$@" ;; mv_conffile) mv_conffile "$@" ;; symlink_to_dir) symlink_to_dir "$@" ;; dir_to_symlink) dir_to_symlink "$@" ;; _internal_pkg_must_own_file) # This is an internal command, must not be used outside this program. internal_pkg_must_own_file "$@" ;; --help|help|-?) usage ;; --version) cat <<-END Debian $PROGNAME version $version. This is free software; see the GNU General Public License version 2 or later for copying conditions. There is NO warranty. END ;; *) badusage "command $command is unknown Hint: upgrading dpkg to a newer version might help." esac exit 0
Close