Linux srv25.usacloudserver.us 5.14.0-570.39.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Sep 4 05:08:52 EDT 2025 x86_64
LiteSpeed
Server IP : 23.137.84.82 & Your IP : 216.73.216.180
Domains :
Cant Read [ /etc/named.conf ]
User : epicgamerzoneco
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
GET
15.82
KB
-rwxr-xr-x
2022-03-25 08:00
[
51.8
KB
-rwxr-xr-x
2025-03-12 12:52
aclocal
35.52
KB
-rwxr-xr-x
2023-09-27 12:16
aclocal-1.16
35.52
KB
-rwxr-xr-x
2023-09-27 12:16
addr2line
27.74
KB
-rwxr-xr-x
2025-03-31 10:32
animate
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
ar
55.98
KB
-rwxr-xr-x
2025-03-31 10:32
arch
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
arpaname
15.11
KB
-rwxr-xr-x
2025-07-29 21:44
as
710.31
KB
-rwxr-xr-x
2025-03-31 10:32
aspell
151.12
KB
-rwxr-xr-x
2022-01-26 21:47
at
1.02
KB
-rwxr-xr-x
2025-08-05 06:15
atq
1.02
KB
-rwxr-xr-x
2025-08-05 06:15
atrm
1.02
KB
-rwxr-xr-x
2025-08-05 06:15
autoconf
14.42
KB
-rwxr-xr-x
2024-10-02 20:06
autoheader
8.33
KB
-rwxr-xr-x
2024-10-02 20:06
autom4te
31.43
KB
-rwxr-xr-x
2024-10-02 20:06
automake
251.93
KB
-rwxr-xr-x
2023-09-27 12:16
automake-1.16
251.93
KB
-rwxr-xr-x
2023-09-27 12:16
autoreconf
20.57
KB
-rwxr-xr-x
2024-10-02 20:06
autoscan
16.72
KB
-rwxr-xr-x
2024-10-02 20:06
autoupdate
33.08
KB
-rwxr-xr-x
2024-10-02 20:06
awk
698.17
KB
-rwxr-xr-x
2022-03-30 22:25
b2sum
51.79
KB
-rwxr-xr-x
2025-03-12 12:52
base32
35.69
KB
-rwxr-xr-x
2025-03-12 12:52
base64
35.7
KB
-rwxr-xr-x
2025-03-12 12:52
basename
35.67
KB
-rwxr-xr-x
2025-03-12 12:52
basenc
48.02
KB
-rwxr-xr-x
2025-03-12 12:52
bash
1.32
MB
-rwxr-xr-x
2024-04-30 14:33
bashbug-64
6.91
KB
-rwxr-xr-x
2024-04-30 14:33
batch
140
B
-rwxr-xr-x
2025-08-05 06:15
bison
494.76
KB
-rwxr-xr-x
2022-01-27 00:15
bunzip2
39.62
KB
-rwxr-xr-x
2025-02-04 03:42
bzcat
39.62
KB
-rwxr-xr-x
2025-02-04 03:42
bzcmp
2.09
KB
-rwxr-xr-x
2025-02-04 03:42
bzdiff
2.09
KB
-rwxr-xr-x
2025-02-04 03:42
bzgrep
2.01
KB
-rwxr-xr-x
2025-02-04 03:42
bzip2
39.62
KB
-rwxr-xr-x
2025-02-04 03:42
bzip2recover
15.4
KB
-rwxr-xr-x
2025-02-04 03:42
bzless
1.23
KB
-rwxr-xr-x
2025-02-04 03:42
bzmore
1.23
KB
-rwxr-xr-x
2025-02-04 03:42
c++
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
c++filt
27.18
KB
-rwxr-xr-x
2025-03-31 10:32
c89
228
B
-rwxr-xr-x
2025-02-12 13:07
c99
219
B
-rwxr-xr-x
2025-02-12 13:07
cagefs_enter.proxied
1.04
KB
-rwxr-xr-x
2025-05-26 11:09
cal
52.01
KB
-rwxr-xr-x
2025-03-13 06:30
captoinfo
87.8
KB
-rwxr-xr-x
2025-08-05 09:46
cat
35.66
KB
-rwxr-xr-x
2025-03-12 12:52
catchsegv
3.21
KB
-rwxr-xr-x
2025-08-04 21:43
cc
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
chcon
60.24
KB
-rwxr-xr-x
2025-03-12 12:52
chgrp
56.19
KB
-rwxr-xr-x
2025-03-12 12:52
chmod
56.16
KB
-rwxr-xr-x
2025-03-12 12:52
chown
60.19
KB
-rwxr-xr-x
2025-03-12 12:52
chrt
27.48
KB
-rwxr-xr-x
2025-03-13 06:30
cksum
35.57
KB
-rwxr-xr-x
2025-03-12 12:52
cldetect
10.35
KB
-rwxr-xr-x
2025-08-28 09:14
clear
15.16
KB
-rwxr-xr-x
2025-08-05 09:46
cloudlinux-awp-user
1.78
KB
-rwxr-xr-x
2025-08-21 15:01
clwpos-user
1.78
KB
-rwxr-xr-x
2025-08-21 15:01
cmp
40.13
KB
-rwxr-xr-x
2022-01-29 18:15
col
23.41
KB
-rwxr-xr-x
2025-03-13 06:30
colcrt
15.38
KB
-rwxr-xr-x
2025-03-13 06:30
colrm
15.36
KB
-rwxr-xr-x
2025-03-13 06:30
column
35.52
KB
-rwxr-xr-x
2025-03-13 06:30
comm
35.75
KB
-rwxr-xr-x
2025-03-12 12:52
compare
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
composite
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
conjure
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
convert
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
cp
149.24
KB
-rwxr-xr-x
2025-03-12 12:52
cpan
8.37
KB
-rwxr-xr-x
2025-05-13 21:00
cpp
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
crontab
1.49
KB
-rwxr-xr-x
2025-08-05 06:13
crontab.cagefs
40.47
KB
-rwxr-xr-x
2025-06-23 12:21
csplit
108.88
KB
-rwxr-xr-x
2025-03-12 12:52
curl
248.49
KB
-rwxr-xr-x
2025-08-05 06:19
cut
47.8
KB
-rwxr-xr-x
2025-03-12 12:52
cyrusbdb2current
1.58
MB
-rwxr-xr-x
2023-04-10 14:10
date
104.05
KB
-rwxr-xr-x
2025-03-12 12:52
dbiprof
6.06
KB
-rwxr-xr-x
2022-02-16 08:03
dd
68.14
KB
-rwxr-xr-x
2025-03-12 12:52
delv
45.38
KB
-rwxr-xr-x
2025-07-29 21:44
df
84.73
KB
-rwxr-xr-x
2025-03-12 12:52
diff
194.7
KB
-rwxr-xr-x
2022-01-29 18:15
diff3
52.3
KB
-rwxr-xr-x
2022-01-29 18:15
dig
136.59
KB
-rwxr-xr-x
2025-07-29 21:44
dir
137.65
KB
-rwxr-xr-x
2025-03-12 12:52
dircolors
39.8
KB
-rwxr-xr-x
2025-03-12 12:52
dirname
31.48
KB
-rwxr-xr-x
2025-03-12 12:52
display
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
dnstap-read
23.19
KB
-rwxr-xr-x
2025-07-29 21:44
du
149.44
KB
-rwxr-xr-x
2025-03-12 12:52
echo
35.48
KB
-rwxr-xr-x
2025-03-12 12:52
ed
52.51
KB
-rwxr-xr-x
2022-01-30 05:02
egrep
32
B
-rwxr-xr-x
2022-01-31 20:22
enc2xs
40.69
KB
-rwxr-xr-x
2022-02-11 16:42
enchant
23.73
KB
-rwxr-xr-x
2022-01-30 11:02
enchant-lsmod
15.8
KB
-rwxr-xr-x
2022-01-30 11:02
env
44.23
KB
-rwxr-xr-x
2025-03-12 12:52
eps2eps
643
B
-rwxr-xr-x
2025-05-14 16:03
eqn
189.52
KB
-rwxr-xr-x
2022-02-01 10:44
ex
1.38
MB
-rwxr-xr-x
2025-05-13 20:05
expand
39.73
KB
-rwxr-xr-x
2025-03-12 12:52
expr
108.6
KB
-rwxr-xr-x
2025-03-12 12:52
factor
72.05
KB
-rwxr-xr-x
2025-03-12 12:52
false
27.47
KB
-rwxr-xr-x
2025-03-12 12:52
fc-cache
139
B
-rwxr-xr-x
2023-01-23 15:48
fc-cache-64
23.17
KB
-rwxr-xr-x
2023-01-23 19:48
fc-cat
19.16
KB
-rwxr-xr-x
2023-01-23 19:48
fc-conflist
15.13
KB
-rwxr-xr-x
2023-01-23 19:48
fc-list
15.13
KB
-rwxr-xr-x
2023-01-23 19:48
fc-match
15.13
KB
-rwxr-xr-x
2023-01-23 19:48
fc-pattern
15.14
KB
-rwxr-xr-x
2023-01-23 19:48
fc-query
15.13
KB
-rwxr-xr-x
2023-01-23 19:48
fc-scan
15.14
KB
-rwxr-xr-x
2023-01-23 19:48
fc-validate
15.14
KB
-rwxr-xr-x
2023-01-23 19:48
fgrep
32
B
-rwxr-xr-x
2022-01-31 20:22
file
27.74
KB
-rwxr-xr-x
2024-04-03 12:38
find
284.95
KB
-rwxr-xr-x
2024-10-02 21:04
flex
412.64
KB
-rwxr-xr-x
2022-01-30 08:23
flex++
412.64
KB
-rwxr-xr-x
2022-01-30 08:23
flock
23.56
KB
-rwxr-xr-x
2025-03-13 06:30
fmt
39.77
KB
-rwxr-xr-x
2025-03-12 12:52
fold
39.71
KB
-rwxr-xr-x
2025-03-12 12:52
free
23.36
KB
-rwxr-xr-x
2024-04-30 16:43
freetype-config
4.32
KB
-rwxr-xr-x
2025-03-31 15:40
funzip
31.42
KB
-rwxr-xr-x
2025-03-18 03:53
g++
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
gawk
698.17
KB
-rwxr-xr-x
2022-03-30 22:25
gcc
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
gcc-ar
27.81
KB
-rwxr-xr-x
2025-02-12 13:11
gcc-nm
27.8
KB
-rwxr-xr-x
2025-02-12 13:11
gcc-ranlib
27.82
KB
-rwxr-xr-x
2025-02-12 13:11
gcov
468.98
KB
-rwxr-xr-x
2025-02-12 13:11
gcov-dump
283.74
KB
-rwxr-xr-x
2025-02-12 13:11
gcov-tool
312.46
KB
-rwxr-xr-x
2025-02-12 13:11
gem
542
B
-rwxr-xr-x
2025-05-06 04:04
gencat
27.45
KB
-rwxr-xr-x
2025-08-04 21:46
geoiplookup
15.87
KB
-rwxr-xr-x
2022-11-23 16:40
geoiplookup6
15.82
KB
-rwxr-xr-x
2022-11-23 16:40
geqn
189.52
KB
-rwxr-xr-x
2022-02-01 10:44
getconf
35.23
KB
-rwxr-xr-x
2025-08-04 21:46
getent
35.86
KB
-rwxr-xr-x
2025-08-04 21:46
getopt
23.45
KB
-rwxr-xr-x
2025-03-13 06:30
ghostscript
15.13
KB
-rwxr-xr-x
2025-05-14 16:03
git
4.06
MB
-rwxr-xr-x
2025-07-21 16:25
git-receive-pack
4.06
MB
-rwxr-xr-x
2025-07-21 16:25
git-shell
770.68
KB
-rwxr-xr-x
2025-07-21 16:25
git-upload-archive
4.06
MB
-rwxr-xr-x
2025-07-21 16:25
git-upload-pack
4.06
MB
-rwxr-xr-x
2025-07-21 16:25
gm
15.67
KB
-rwxr-xr-x
2022-11-23 17:49
gmake
249.8
KB
-rwxr-xr-x
2024-04-02 12:55
gneqn
916
B
-rwxr-xr-x
2022-02-01 10:44
gnroff
3.21
KB
-rwxr-xr-x
2022-02-01 10:44
gpg
1.07
MB
-rwxr-xr-x
2023-09-26 19:39
gpg-agent
342.25
KB
-rwxr-xr-x
2023-09-26 19:39
gpg-error
36.1
KB
-rwxr-xr-x
2022-02-09 23:24
gpgsplit
27.49
KB
-rwxr-xr-x
2023-09-26 19:39
gpgv
295.42
KB
-rwxr-xr-x
2023-09-26 19:39
gpic
201.72
KB
-rwxr-xr-x
2022-02-01 10:44
gprof
101.48
KB
-rwxr-xr-x
2025-03-31 10:32
grep
154.49
KB
-rwxr-xr-x
2022-01-31 20:22
groff
96.77
KB
-rwxr-xr-x
2022-02-01 10:44
grops
167.26
KB
-rwxr-xr-x
2022-02-01 10:44
grotty
122.2
KB
-rwxr-xr-x
2022-02-01 10:44
groups
35.66
KB
-rwxr-xr-x
2025-03-12 12:52
gs
15.13
KB
-rwxr-xr-x
2025-05-14 16:03
gsnd
281
B
-rwxr-xr-x
2025-05-14 16:03
gtar
514.27
KB
-rwxr-xr-x
2024-10-02 21:24
gtbl
130.86
KB
-rwxr-xr-x
2022-02-01 10:44
gtroff
732.07
KB
-rwxr-xr-x
2022-02-01 10:44
gunzip
2.29
KB
-rwxr-xr-x
2022-10-15 17:26
gzexe
6.3
KB
-rwxr-xr-x
2022-10-15 17:26
gzip
89.63
KB
-rwxr-xr-x
2022-10-15 17:26
h2ph
28.69
KB
-rwxr-xr-x
2025-07-28 03:54
h2xs
59.5
KB
-rwxr-xr-x
2025-07-28 03:53
head
43.8
KB
-rwxr-xr-x
2025-03-12 12:52
hexdump
51.59
KB
-rwxr-xr-x
2025-03-13 06:30
host
108.57
KB
-rwxr-xr-x
2025-07-29 21:44
hostid
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
hostname
23.84
KB
-rwxr-xr-x
2022-02-14 11:22
hunspell
102.67
KB
-rwxr-xr-x
2022-01-31 20:22
iconv
64.09
KB
-rwxr-xr-x
2025-08-04 21:46
icu-config
205
B
-rwxr-xr-x
2025-07-29 16:13
icu-config-64
21.67
KB
-rwxr-xr-x
2025-07-29 16:16
icuinfo
15.49
KB
-rwxr-xr-x
2025-07-29 16:17
id
39.71
KB
-rwxr-xr-x
2025-03-12 12:52
identify
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
idn
36.46
KB
-rwxr-xr-x
2022-02-14 15:33
ifnames
4.03
KB
-rwxr-xr-x
2024-10-02 20:06
import
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
infocmp
63.69
KB
-rwxr-xr-x
2025-08-05 09:46
infotocap
87.8
KB
-rwxr-xr-x
2025-08-05 09:46
install
149.29
KB
-rwxr-xr-x
2025-03-12 12:52
instmodsh
4.1
KB
-rwxr-xr-x
2022-02-24 09:56
ionice
15.4
KB
-rwxr-xr-x
2025-03-13 06:30
ipcrm
19.41
KB
-rwxr-xr-x
2025-03-13 06:30
ipcs
39.52
KB
-rwxr-xr-x
2025-03-13 06:30
isosize
15.34
KB
-rwxr-xr-x
2025-03-13 06:30
ispell
992
B
-rwxr-xr-x
2019-10-08 00:15
join
51.9
KB
-rwxr-xr-x
2025-03-12 12:52
kill
31.47
KB
-rwxr-xr-x
2025-03-13 06:30
ld
1.71
MB
-rwxr-xr-x
2025-03-31 10:32
ld.bfd
1.71
MB
-rwxr-xr-x
2025-03-31 10:32
ldd
5.32
KB
-rwxr-xr-x
2025-08-04 21:44
less
197.9
KB
-rwxr-xr-x
2024-10-02 20:38
lessecho
15.37
KB
-rwxr-xr-x
2024-10-02 20:38
lesskey
24.8
KB
-rwxr-xr-x
2024-10-02 20:38
lesspipe.sh
3.5
KB
-rwxr-xr-x
2024-10-02 19:31
lex
412.64
KB
-rwxr-xr-x
2022-01-30 08:23
libnetcfg
15.41
KB
-rwxr-xr-x
2025-07-28 03:54
libtool
359.18
KB
-rwxr-xr-x
2024-10-01 17:49
libtoolize
126.17
KB
-rwxr-xr-x
2024-10-01 17:49
link
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
ln
60.16
KB
-rwxr-xr-x
2025-03-12 12:52
locale
59.08
KB
-rwxr-xr-x
2025-08-04 21:46
localedef
314.05
KB
-rwxr-xr-x
2025-08-04 21:46
logger
36.16
KB
-rwxr-xr-x
2025-03-13 06:30
login
43.62
KB
-rwxr-xr-x
2025-03-13 06:30
logname
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
look
19.36
KB
-rwxr-xr-x
2025-03-13 06:30
ls
137.64
KB
-rwxr-xr-x
2025-03-12 12:52
lto-dump
26.58
MB
-rwxr-xr-x
2025-02-12 13:11
m4
240.4
KB
-rwxr-xr-x
2022-03-31 07:28
make
249.8
KB
-rwxr-xr-x
2024-04-02 12:55
make-dummy-cert
614
B
-rwxr-xr-x
2025-02-11 21:56
mariadb
5.08
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-access
109.34
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-admin
4.85
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-binlog
5.13
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-check
4.84
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-conv
4.56
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-convert-table-format
4.12
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-dump
4.94
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-dumpslow
8.05
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-embedded
24.07
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-find-rows
3.21
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-hotcopy
34.53
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-import
4.84
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-plugin
4.53
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-secure-installation
13.49
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-setpermission
17.56
KB
-rwxr-xr-x
2025-07-28 16:17
mariadb-show
4.83
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-slap
4.86
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-tzinfo-to-sql
4.53
MB
-rwxr-xr-x
2025-07-28 17:11
mariadb-waitpid
4.52
MB
-rwxr-xr-x
2025-07-28 17:11
mcookie
27.5
KB
-rwxr-xr-x
2025-03-13 06:30
md5sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
mesg
15.33
KB
-rwxr-xr-x
2025-03-13 06:30
mkdir
68.31
KB
-rwxr-xr-x
2025-03-12 12:52
mkfifo
39.83
KB
-rwxr-xr-x
2025-03-12 12:52
mknod
43.88
KB
-rwxr-xr-x
2025-03-12 12:52
mktemp
39.8
KB
-rwxr-xr-x
2025-03-12 12:52
mogrify
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
montage
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
more
43.63
KB
-rwxr-xr-x
2025-03-13 06:30
msql2mysql
1.42
KB
-rwxr-xr-x
2025-07-28 16:17
mv
141.17
KB
-rwxr-xr-x
2025-03-12 12:52
my_print_defaults
4.53
MB
-rwxr-xr-x
2025-07-28 17:11
mysql
5.08
MB
-rwxr-xr-x
2025-07-28 17:11
mysql_config
4.5
KB
-rwxr-xr-x
2025-07-28 16:17
mysql_find_rows
3.21
KB
-rwxr-xr-x
2025-07-28 16:17
mysql_waitpid
4.52
MB
-rwxr-xr-x
2025-07-28 17:11
mysqlaccess
109.34
KB
-rwxr-xr-x
2025-07-28 16:17
mysqladmin
4.85
MB
-rwxr-xr-x
2025-07-28 17:11
mysqlbinlog
5.13
MB
-rwxr-xr-x
2025-07-28 17:11
mysqlcheck
4.84
MB
-rwxr-xr-x
2025-07-28 17:11
mysqldump
4.94
MB
-rwxr-xr-x
2025-07-28 17:11
mysqlimport
4.84
MB
-rwxr-xr-x
2025-07-28 17:11
mysqlshow
4.83
MB
-rwxr-xr-x
2025-07-28 17:11
mytop
71.95
KB
-rwxr-xr-x
2025-07-28 16:17
namei
23.41
KB
-rwxr-xr-x
2025-03-13 06:30
nano
346.2
KB
-rwxr-xr-x
2025-03-13 03:12
neqn
916
B
-rwxr-xr-x
2022-02-01 10:44
nice
35.67
KB
-rwxr-xr-x
2025-03-12 12:52
nl
100.71
KB
-rwxr-xr-x
2025-03-12 12:52
nm
44.71
KB
-rwxr-xr-x
2025-03-31 10:32
nohup
35.58
KB
-rwxr-xr-x
2025-03-12 12:52
nproc
35.69
KB
-rwxr-xr-x
2025-03-12 12:52
nroff
3.21
KB
-rwxr-xr-x
2022-02-01 10:44
nslookup
112.52
KB
-rwxr-xr-x
2025-07-29 21:44
nsupdate
71.8
KB
-rwxr-xr-x
2025-07-29 21:44
numfmt
55.83
KB
-rwxr-xr-x
2025-03-12 12:52
objcopy
185.37
KB
-rwxr-xr-x
2025-03-31 10:32
objdump
413.09
KB
-rwxr-xr-x
2025-03-31 10:32
od
64.06
KB
-rwxr-xr-x
2025-03-12 12:52
openssl
1.01
MB
-rwxr-xr-x
2025-02-11 21:56
pango-list
19.11
KB
-rwxr-xr-x
2023-04-07 10:19
pango-segmentation
19.13
KB
-rwxr-xr-x
2023-04-07 10:19
pango-view
60.17
KB
-rwxr-xr-x
2023-04-07 10:19
passenger
1.73
KB
-rwxr-xr-x
2025-04-17 08:59
passwd
1.02
KB
-rwxr-xr-x
2022-04-14 14:45
paste
35.58
KB
-rwxr-xr-x
2025-03-12 12:52
patch
195.02
KB
-rwxr-xr-x
2022-03-25 15:42
pathchk
35.66
KB
-rwxr-xr-x
2025-03-12 12:52
pdf2dsc
701
B
-rwxr-xr-x
2025-05-14 16:03
pdf2ps
913
B
-rwxr-xr-x
2025-05-14 16:03
perl
15.13
KB
-rwxr-xr-x
2025-07-28 03:54
perl5.32.1
15.13
KB
-rwxr-xr-x
2025-07-28 03:54
perlbug
43.81
KB
-rwxr-xr-x
2025-07-28 03:54
perldoc
118
B
-rwxr-xr-x
2022-02-14 23:51
perlivp
10.56
KB
-rwxr-xr-x
2025-07-28 03:53
perlml
14.18
KB
-rwxr-xr-x
2022-08-10 20:54
perlthanks
43.81
KB
-rwxr-xr-x
2025-07-28 03:54
pgrep
31.42
KB
-rwxr-xr-x
2024-04-30 16:43
php
937
B
-rwxr-xr-x
2025-07-01 16:06
pic
201.72
KB
-rwxr-xr-x
2022-02-01 10:44
piconv
8.08
KB
-rwxr-xr-x
2022-02-11 16:42
ping
76.51
KB
-rwxr-xr-x
2025-06-24 14:19
pinky
35.61
KB
-rwxr-xr-x
2025-03-12 12:52
pkg-config
335
B
-rwxr-xr-x
2023-04-06 20:27
pkill
31.42
KB
-rwxr-xr-x
2024-04-30 16:43
pl2pm
4.43
KB
-rwxr-xr-x
2025-07-28 03:54
pmap
35.39
KB
-rwxr-xr-x
2024-04-30 16:43
pod2html
4.04
KB
-rwxr-xr-x
2025-07-28 03:54
pod2man
14.68
KB
-rwxr-xr-x
2022-03-25 12:10
pod2text
10.55
KB
-rwxr-xr-x
2022-03-25 12:10
pod2usage
4.01
KB
-rwxr-xr-x
2022-02-11 16:01
podchecker
3.57
KB
-rwxr-xr-x
2022-02-11 19:01
post-grohtml
199.76
KB
-rwxr-xr-x
2022-02-01 10:44
pr
72.28
KB
-rwxr-xr-x
2025-03-12 12:52
pre-grohtml
92.92
KB
-rwxr-xr-x
2022-02-01 10:44
precat
5.53
KB
-rwxr-xr-x
2019-10-08 00:15
preunzip
5.53
KB
-rwxr-xr-x
2019-10-08 00:15
prezip
5.53
KB
-rwxr-xr-x
2019-10-08 00:15
prezip-bin
15.69
KB
-rwxr-xr-x
2022-01-26 21:47
printenv
31.47
KB
-rwxr-xr-x
2025-03-12 12:52
printf
51.77
KB
-rwxr-xr-x
2025-03-12 12:52
prove
13.24
KB
-rwxr-xr-x
2022-02-16 11:58
ps
141.15
KB
-rwxr-xr-x
2024-04-30 16:43
ps2ascii
635
B
-rwxr-xr-x
2025-05-14 16:03
ps2epsi
1.24
KB
-rwxr-xr-x
2025-05-14 16:03
ps2pdf
276
B
-rwxr-xr-x
2025-05-14 16:03
ps2pdf12
219
B
-rwxr-xr-x
2025-05-14 16:03
ps2pdf13
219
B
-rwxr-xr-x
2025-05-14 16:03
ps2pdf14
219
B
-rwxr-xr-x
2025-05-14 16:03
ps2pdfwr
1.06
KB
-rwxr-xr-x
2025-05-14 16:03
ps2ps
651
B
-rwxr-xr-x
2025-05-14 16:03
ps2ps2
673
B
-rwxr-xr-x
2025-05-14 16:03
ptx
129.03
KB
-rwxr-xr-x
2025-03-12 12:52
pwd
35.7
KB
-rwxr-xr-x
2025-03-12 12:52
pwdx
15.28
KB
-rwxr-xr-x
2024-04-30 16:43
pydoc
78
B
-rwxr-xr-x
2025-09-02 07:04
pydoc3
78
B
-rwxr-xr-x
2025-09-02 07:04
pydoc3.9
78
B
-rwxr-xr-x
2025-09-02 07:04
ranlib
56
KB
-rwxr-xr-x
2025-03-31 10:32
readelf
667.28
KB
-rwxr-xr-x
2025-03-31 10:32
readlink
39.69
KB
-rwxr-xr-x
2025-03-12 12:52
realpath
39.77
KB
-rwxr-xr-x
2025-03-12 12:52
recode
31.93
KB
-rwxr-xr-x
2022-11-02 11:35
red
92
B
-rwxr-xr-x
2022-01-30 05:02
rename
23.41
KB
-rwxr-xr-x
2025-03-13 06:30
renew-dummy-cert
729
B
-rwxr-xr-x
2025-02-11 21:56
renice
15.36
KB
-rwxr-xr-x
2025-03-13 06:30
replace
4.5
MB
-rwxr-xr-x
2025-07-28 17:11
reset
27.34
KB
-rwxr-xr-x
2025-08-05 09:46
rev
15.35
KB
-rwxr-xr-x
2025-03-13 06:30
rm
60.21
KB
-rwxr-xr-x
2025-03-12 12:52
rmdir
43.61
KB
-rwxr-xr-x
2025-03-12 12:52
rnano
346.2
KB
-rwxr-xr-x
2025-03-13 03:12
ruby
15.27
KB
-rwxr-xr-x
2025-05-06 03:53
run-with-aspell
89
B
-rwxr-xr-x
2022-01-26 21:47
runcon
35.65
KB
-rwxr-xr-x
2025-03-12 12:52
rvi
1.38
MB
-rwxr-xr-x
2025-05-13 20:05
rview
1.38
MB
-rwxr-xr-x
2025-05-13 20:05
scalar
819.34
KB
-rwxr-xr-x
2025-07-21 16:25
scl
39.55
KB
-rwxr-xr-x
2023-04-07 01:57
scl_enabled
262
B
-rwxr-xr-x
2021-07-27 15:14
scl_source
1.88
KB
-rwxr-xr-x
2021-07-27 15:14
scp
133.06
KB
-rwxr-xr-x
2025-03-13 13:04
script
51.75
KB
-rwxr-xr-x
2025-03-13 06:30
sdiff
44.2
KB
-rwxr-xr-x
2022-01-29 18:15
sed
114.01
KB
-rwxr-xr-x
2022-02-15 10:36
selectorctl
7.63
KB
-rwxr-xr-x
2025-07-11 15:01
seq
47.79
KB
-rwxr-xr-x
2025-03-12 12:52
setsid
15.34
KB
-rwxr-xr-x
2025-03-13 06:30
setterm
35.52
KB
-rwxr-xr-x
2025-03-13 06:30
sftp
141.05
KB
-rwxr-xr-x
2025-03-13 13:04
sh
1.32
MB
-rwxr-xr-x
2024-04-30 14:33
sha1sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
sha224sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
sha256sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
sha384sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
sha512sum
39.64
KB
-rwxr-xr-x
2025-03-12 12:52
shred
51.88
KB
-rwxr-xr-x
2025-03-12 12:52
shuf
48.01
KB
-rwxr-xr-x
2025-03-12 12:52
size
31.61
KB
-rwxr-xr-x
2025-03-31 10:32
skill
31.4
KB
-rwxr-xr-x
2024-04-30 16:43
slabtop
23.42
KB
-rwxr-xr-x
2024-04-30 16:43
sleep
35.65
KB
-rwxr-xr-x
2025-03-12 12:52
snice
31.4
KB
-rwxr-xr-x
2024-04-30 16:43
sort
113.09
KB
-rwxr-xr-x
2025-03-12 12:52
spell
125
B
-rwxr-xr-x
2019-10-08 00:15
splain
18.96
KB
-rwxr-xr-x
2025-07-28 03:54
split
52.31
KB
-rwxr-xr-x
2025-03-12 12:52
sprof
35.45
KB
-rwxr-xr-x
2025-08-04 21:46
sqlite3
1.52
MB
-rwxr-xr-x
2025-07-28 21:55
ssh
843.53
KB
-rwxr-xr-x
2025-03-13 13:04
ssh-add
164.86
KB
-rwxr-xr-x
2025-03-13 13:04
ssh-agent
281.02
KB
-rwxr-xr-x
2025-03-13 13:04
ssh-copy-id
12.38
KB
-rwxr-xr-x
2025-03-13 13:04
ssh-keygen
455.04
KB
-rwxr-xr-x
2025-03-13 13:04
ssh-keyscan
197.43
KB
-rwxr-xr-x
2025-03-13 13:04
stat
80.06
KB
-rwxr-xr-x
2025-03-12 12:52
stdbuf
43.74
KB
-rwxr-xr-x
2025-03-12 12:52
strace
2.08
MB
-rwxr-xr-x
2025-03-12 19:11
stream
15.27
KB
-rwxr-xr-x
2025-04-01 12:55
strings
31.74
KB
-rwxr-xr-x
2025-03-31 10:32
strip
185.36
KB
-rwxr-xr-x
2025-03-31 10:32
stty
75.83
KB
-rwxr-xr-x
2025-03-12 12:52
sum
35.59
KB
-rwxr-xr-x
2025-03-12 12:52
sync
35.54
KB
-rwxr-xr-x
2025-03-12 12:52
tabs
19.16
KB
-rwxr-xr-x
2025-08-05 09:46
tac
104.6
KB
-rwxr-xr-x
2025-03-12 12:52
tail
68.09
KB
-rwxr-xr-x
2025-03-12 12:52
tar
514.27
KB
-rwxr-xr-x
2024-10-02 21:24
taskset
23.41
KB
-rwxr-xr-x
2025-03-13 06:30
tbl
130.86
KB
-rwxr-xr-x
2022-02-01 10:44
tclsh
15.69
KB
-rwxr-xr-x
2022-10-15 21:29
tclsh8.6
15.69
KB
-rwxr-xr-x
2022-10-15 21:29
tee
35.69
KB
-rwxr-xr-x
2025-03-12 12:52
test
43.79
KB
-rwxr-xr-x
2025-03-12 12:52
tic
87.8
KB
-rwxr-xr-x
2025-08-05 09:46
timeout
40.17
KB
-rwxr-xr-x
2025-03-12 12:52
tload
19.34
KB
-rwxr-xr-x
2024-04-30 16:43
tmpwatch
36.03
KB
-rwxr-xr-x
2022-02-11 11:52
toe
23.23
KB
-rwxr-xr-x
2025-08-05 09:46
top
132.27
KB
-rwxr-xr-x
2024-04-30 16:43
touch
92.03
KB
-rwxr-xr-x
2025-03-12 12:52
tput
27.25
KB
-rwxr-xr-x
2025-08-05 09:46
tr
47.87
KB
-rwxr-xr-x
2025-03-12 12:52
troff
732.07
KB
-rwxr-xr-x
2022-02-01 10:44
true
27.47
KB
-rwxr-xr-x
2025-03-12 12:52
truncate
35.66
KB
-rwxr-xr-x
2025-03-12 12:52
tset
27.34
KB
-rwxr-xr-x
2025-08-05 09:46
tsort
47.79
KB
-rwxr-xr-x
2025-03-12 12:52
tty
31.65
KB
-rwxr-xr-x
2025-03-12 12:52
tzselect
14.99
KB
-rwxr-xr-x
2025-08-04 21:43
uapi
1.02
KB
-rwxr-xr-x
2025-08-25 08:36
ul
23.45
KB
-rwxr-xr-x
2025-03-13 06:30
uname
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
unexpand
39.73
KB
-rwxr-xr-x
2025-03-12 12:52
uniq
43.83
KB
-rwxr-xr-x
2025-03-12 12:52
unlink
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
unzip
196.14
KB
-rwxr-xr-x
2025-03-18 03:53
unzipsfx
87.89
KB
-rwxr-xr-x
2025-03-18 03:53
uptime
15.29
KB
-rwxr-xr-x
2024-04-30 16:43
users
35.68
KB
-rwxr-xr-x
2025-03-12 12:52
utmpdump
23.4
KB
-rwxr-xr-x
2025-03-13 06:30
vdir
137.65
KB
-rwxr-xr-x
2025-03-12 12:52
vi
691
B
-rwxr-xr-x
2025-05-13 20:05
view
150
B
-rwxr-xr-x
2025-05-13 20:05
vmstat
39.41
KB
-rwxr-xr-x
2024-04-30 16:43
watch
27.87
KB
-rwxr-xr-x
2024-04-30 16:43
wc
43.73
KB
-rwxr-xr-x
2025-03-12 12:52
wget
521.41
KB
-rwxr-xr-x
2024-09-03 11:58
whereis
32.03
KB
-rwxr-xr-x
2025-03-13 06:30
which
27.89
KB
-rwxr-xr-x
2025-08-05 06:19
who
51.77
KB
-rwxr-xr-x
2025-03-12 12:52
whoami
31.66
KB
-rwxr-xr-x
2025-03-12 12:52
word-list-compress
15.7
KB
-rwxr-xr-x
2022-01-26 21:47
x86_64-redhat-linux-c++
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
x86_64-redhat-linux-g++
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
x86_64-redhat-linux-gcc
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
x86_64-redhat-linux-gcc-11
1.04
MB
-rwxr-xr-x
2025-02-12 13:11
xargs
64.09
KB
-rwxr-xr-x
2024-10-02 21:04
xmlcatalog
23.15
KB
-rwxr-xr-x
2025-08-07 15:49
xmllint
80.55
KB
-rwxr-xr-x
2025-08-07 15:49
xmlwf
39.63
KB
-rwxr-xr-x
2025-05-13 17:53
xsltproc
31.23
KB
-rwxr-xr-x
2025-05-13 19:06
xsubpp
4.96
KB
-rwxr-xr-x
2022-02-16 08:56
yes
31.51
KB
-rwxr-xr-x
2025-03-12 12:52
zcat
1.94
KB
-rwxr-xr-x
2022-10-15 17:26
zcmp
1.64
KB
-rwxr-xr-x
2022-10-15 17:26
zdiff
6.31
KB
-rwxr-xr-x
2022-10-15 17:26
zegrep
33
B
-rwxr-xr-x
2022-10-15 17:26
zfgrep
33
B
-rwxr-xr-x
2022-10-15 17:26
zforce
2.04
KB
-rwxr-xr-x
2022-10-15 17:26
zgrep
7.93
KB
-rwxr-xr-x
2022-10-15 17:26
zip
221.09
KB
-rwxr-xr-x
2023-04-07 14:02
zipcloak
75.7
KB
-rwxr-xr-x
2023-04-07 14:02
zipgrep
2.89
KB
-rwxr-xr-x
2008-10-10 17:40
zipinfo
196.14
KB
-rwxr-xr-x
2025-03-18 03:53
zipnote
67.61
KB
-rwxr-xr-x
2023-04-07 14:02
zipsplit
63.58
KB
-rwxr-xr-x
2023-04-07 14:02
zless
2.16
KB
-rwxr-xr-x
2022-10-15 17:26
zmore
1.8
KB
-rwxr-xr-x
2022-10-15 17:26
znew
4.47
KB
-rwxr-xr-x
2022-10-15 17:26
Save
Rename
#!/usr/bin/bash # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. PKGVERSION="(GNU libc) " TZVERSION="2.34" REPORT_BUGS_TO="<https://www.gnu.org/software/libc/bugs.html>" # Contributed by Paul Eggert. This file is in the public domain. # Porting notes: # # This script requires a Posix-like shell and prefers the extension of a # 'select' statement. The 'select' statement was introduced in the # Korn shell and is available in Bash and other shell implementations. # If your host lacks both Bash and the Korn shell, you can get their # source from one of these locations: # # Bash <https://www.gnu.org/software/bash/> # Korn Shell <http://www.kornshell.com/> # MirBSD Korn Shell <https://www.mirbsd.org/mksh.htm> # # For portability to Solaris 9 /bin/sh this script avoids some POSIX # features and common extensions, such as $(...) (which works sometimes # but not others), $((...)), and $10. # # This script also uses several features of modern awk programs. # If your host lacks awk, or has an old awk that does not conform to Posix, # you can use either of the following free programs instead: # # Gawk (GNU awk) <https://www.gnu.org/software/gawk/> # mawk <https://invisible-island.net/mawk/> # Specify default values for environment variables if they are unset. : ${AWK=awk} : ${TZDIR=/usr/share/zoneinfo} # Output one argument as-is to standard output. # Safer than 'echo', which can mishandle '\' or leading '-'. say() { printf '%s\n' "$1" } # Check for awk Posix compliance. ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1 [ $? = 123 ] || { say >&2 "$0: Sorry, your '$AWK' program is not Posix compatible." exit 1 } coord= location_limit=10 zonetabtype=zone1970 usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] Select a timezone interactively. Options: -c COORD Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates COORD. COORD should use ISO 6709 notation, for example, '-c +4852+00220' for Paris (in degrees and minutes, North and East), or '-c -35-058' for Buenos Aires (in degrees, South and West). -n LIMIT Display at most LIMIT locations when -c is used (default $location_limit). --version Output version information. --help Output this help. Report bugs to $REPORT_BUGS_TO." # Ask the user to select from the function's arguments, # and assign the selected argument to the variable 'select_result'. # Exit on EOF or I/O error. Use the shell's 'select' builtin if available, # falling back on a less-nice but portable substitute otherwise. if case $BASH_VERSION in ?*) : ;; '') # '; exit' should be redundant, but Dash doesn't properly fail without it. (eval 'set --; select x; do break; done; exit') </dev/null 2>/dev/null esac then # Do this inside 'eval', as otherwise the shell might exit when parsing it # even though it is never executed. eval ' doselect() { select select_result do case $select_result in "") echo >&2 "Please enter a number in range." ;; ?*) break esac done || exit } # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout. case $BASH_VERSION in [01].*) case `echo 1 | (select x in x; do break; done) 2>/dev/null` in ?*) PS3= esac esac ' else doselect() { # Field width of the prompt numbers. select_width=`expr $# : '.*'` select_i= while : do case $select_i in '') select_i=0 for select_word do select_i=`expr $select_i + 1` printf >&2 "%${select_width}d) %s\\n" $select_i "$select_word" done ;; *[!0-9]*) echo >&2 'Please enter a number in range.' ;; *) if test 1 -le $select_i && test $select_i -le $#; then shift `expr $select_i - 1` select_result=$1 break fi echo >&2 'Please enter a number in range.' esac # Prompt and read input. printf >&2 %s "${PS3-#? }" read select_i || exit done } fi while getopts c:n:t:-: opt do case $opt$OPTARG in c*) coord=$OPTARG ;; n*) location_limit=$OPTARG ;; t*) # Undocumented option, used for developer testing. zonetabtype=$OPTARG ;; -help) exec echo "$usage" ;; -version) exec echo "tzselect $PKGVERSION$TZVERSION" ;; -*) say >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;; *) say >&2 "$0: try '$0 --help'"; exit 1 ;; esac done shift `expr $OPTIND - 1` case $# in 0) ;; *) say >&2 "$0: $1: unknown argument"; exit 1 ;; esac # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/$zonetabtype.tab for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE do <"$f" || { say >&2 "$0: time zone files are not set up correctly" exit 1 } done # If the current locale does not support UTF-8, convert data to current # locale's format if possible, as the shell aligns columns better that way. # Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI. ! $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' && { tmp=`(mktemp -d) 2>/dev/null` || { tmp=${TMPDIR-/tmp}/tzselect.$$ && (umask 77 && mkdir -- "$tmp") };} && trap 'status=$?; rm -fr -- "$tmp"; exit $status' 0 HUP INT PIPE TERM && (iconv -f UTF-8 -t //TRANSLIT <"$TZ_COUNTRY_TABLE" >$tmp/iso3166.tab) \ 2>/dev/null && TZ_COUNTRY_TABLE=$tmp/iso3166.tab && iconv -f UTF-8 -t //TRANSLIT <"$TZ_ZONE_TABLE" >$tmp/$zonetabtype.tab && TZ_ZONE_TABLE=$tmp/$zonetabtype.tab newline=' ' IFS=$newline # Awk script to read a time zone table and output the same table, # with each column preceded by its distance from 'here'. output_distances=' BEGIN { FS = "\t" while (getline <TZ_COUNTRY_TABLE) if ($0 ~ /^[^#]/) country[$1] = $2 country["US"] = "US" # Otherwise the strings get too long. } function abs(x) { return x < 0 ? -x : x; } function min(x, y) { return x < y ? x : y; } function convert_coord(coord, deg, minute, ilen, sign, sec) { if (coord ~ /^[-+]?[0-9]?[0-9][0-9][0-9][0-9][0-9][0-9]([^0-9]|$)/) { degminsec = coord intdeg = degminsec < 0 ? -int(-degminsec / 10000) : int(degminsec / 10000) minsec = degminsec - intdeg * 10000 intmin = minsec < 0 ? -int(-minsec / 100) : int(minsec / 100) sec = minsec - intmin * 100 deg = (intdeg * 3600 + intmin * 60 + sec) / 3600 } else if (coord ~ /^[-+]?[0-9]?[0-9][0-9][0-9][0-9]([^0-9]|$)/) { degmin = coord intdeg = degmin < 0 ? -int(-degmin / 100) : int(degmin / 100) minute = degmin - intdeg * 100 deg = (intdeg * 60 + minute) / 60 } else deg = coord return deg * 0.017453292519943296 } function convert_latitude(coord) { match(coord, /..*[-+]/) return convert_coord(substr(coord, 1, RLENGTH - 1)) } function convert_longitude(coord) { match(coord, /..*[-+]/) return convert_coord(substr(coord, RLENGTH)) } # Great-circle distance between points with given latitude and longitude. # Inputs and output are in radians. This uses the great-circle special # case of the Vicenty formula for distances on ellipsoids. function gcdist(lat1, long1, lat2, long2, dlong, x, y, num, denom) { dlong = long2 - long1 x = cos(lat2) * sin(dlong) y = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlong) num = sqrt(x * x + y * y) denom = sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(dlong) return atan2(num, denom) } # Parallel distance between points with given latitude and longitude. # This is the product of the longitude difference and the cosine # of the latitude of the point that is further from the equator. # I.e., it considers longitudes to be further apart if they are # nearer the equator. function pardist(lat1, long1, lat2, long2) { return abs(long1 - long2) * min(cos(lat1), cos(lat2)) } # The distance function is the sum of the great-circle distance and # the parallel distance. It could be weighted. function dist(lat1, long1, lat2, long2) { return gcdist(lat1, long1, lat2, long2) + pardist(lat1, long1, lat2, long2) } BEGIN { coord_lat = convert_latitude(coord) coord_long = convert_longitude(coord) } /^[^#]/ { here_lat = convert_latitude($2) here_long = convert_longitude($2) line = $1 "\t" $2 "\t" $3 sep = "\t" ncc = split($1, cc, /,/) for (i = 1; i <= ncc; i++) { line = line sep country[cc[i]] sep = ", " } if (NF == 4) line = line " - " $4 printf "%g\t%s\n", dist(coord_lat, coord_long, here_lat, here_long), line } ' # Begin the main loop. We come back here if the user wants to retry. while echo >&2 'Please identify a location' \ 'so that time zone rules can be set correctly.' continent= country= region= case $coord in ?*) continent=coord;; '') # Ask the user for continent or ocean. echo >&2 'Please select a continent, ocean, "coord", or "TZ".' quoted_continents=` $AWK ' BEGIN { FS = "\t" } /^[^#]/ { entry = substr($3, 1, index($3, "/") - 1) if (entry == "America") entry = entry "s" if (entry ~ /^(Arctic|Atlantic|Indian|Pacific)$/) entry = entry " Ocean" printf "'\''%s'\''\n", entry } ' <"$TZ_ZONE_TABLE" | sort -u | tr '\n' ' ' echo '' ` eval ' doselect '"$quoted_continents"' \ "coord - I want to use geographical coordinates." \ "TZ - I want to specify the timezone using the Posix TZ format." continent=$select_result case $continent in Americas) continent=America;; *" "*) continent=`expr "$continent" : '\''\([^ ]*\)'\''` esac ' esac case $continent in TZ) # Ask the user for a Posix TZ string. Check that it conforms. while echo >&2 'Please enter the desired value' \ 'of the TZ environment variable.' echo >&2 'For example, AEST-10 is abbreviated' \ 'AEST and is 10 hours' echo >&2 'ahead (east) of Greenwich,' \ 'with no daylight saving time.' read TZ $AWK -v TZ="$TZ" 'BEGIN { tzname = "(<[[:alnum:]+-]{3,}>|[[:alpha:]]{3,})" time = "(2[0-4]|[0-1]?[0-9])" \ "(:[0-5][0-9](:[0-5][0-9])?)?" offset = "[-+]?" time mdate = "M([1-9]|1[0-2])\\.[1-5]\\.[0-6]" jdate = "((J[1-9]|[0-9]|J?[1-9][0-9]" \ "|J?[1-2][0-9][0-9])|J?3[0-5][0-9]|J?36[0-5])" datetime = ",(" mdate "|" jdate ")(/" time ")?" tzpattern = "^(:.*|" tzname offset "(" tzname \ "(" offset ")?(" datetime datetime ")?)?)$" if (TZ ~ tzpattern) exit 1 exit 0 }' do say >&2 "'$TZ' is not a conforming Posix timezone string." done TZ_for_date=$TZ;; *) case $continent in coord) case $coord in '') echo >&2 'Please enter coordinates' \ 'in ISO 6709 notation.' echo >&2 'For example, +4042-07403 stands for' echo >&2 '40 degrees 42 minutes north,' \ '74 degrees 3 minutes west.' read coord;; esac distance_table=`$AWK \ -v coord="$coord" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ "$output_distances" <"$TZ_ZONE_TABLE" | sort -n | sed "${location_limit}q" ` regions=`say "$distance_table" | $AWK ' BEGIN { FS = "\t" } { print $NF } '` echo >&2 'Please select one of the following timezones,' \ echo >&2 'listed roughly in increasing order' \ "of distance from $coord". doselect $regions region=$select_result TZ=`say "$distance_table" | $AWK -v region="$region" ' BEGIN { FS="\t" } $NF == region { print $4 } '` ;; *) # Get list of names of countries in the continent or ocean. countries=`$AWK \ -v continent="$continent" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" } /^#/ { next } $3 ~ ("^" continent "/") { ncc = split($1, cc, /,/) for (i = 1; i <= ncc; i++) if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i] } END { while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/) cc_name[$1] = $2 } for (i = 1; i <= ccs; i++) { country = cc_list[i] if (cc_name[country]) { country = cc_name[country] } print country } } ' <"$TZ_ZONE_TABLE" | sort -f` # If there's more than one country, ask the user which one. case $countries in *"$newline"*) echo >&2 'Please select a country' \ 'whose clocks agree with yours.' doselect $countries country=$select_result;; *) country=$countries esac # Get list of timezones in the country. regions=`$AWK \ -v country="$country" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/ && country == $2) { cc = $1 break } } } /^#/ { next } $1 ~ cc { print $4 } ' <"$TZ_ZONE_TABLE"` # If there's more than one region, ask the user which one. case $regions in *"$newline"*) echo >&2 'Please select one of the following timezones.' doselect $regions region=$select_result;; *) region=$regions esac # Determine TZ from country and region. TZ=`$AWK \ -v country="$country" \ -v region="$region" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/ && country == $2) { cc = $1 break } } } /^#/ { next } $1 ~ cc && $4 == region { print $3 } ' <"$TZ_ZONE_TABLE"` esac # Make sure the corresponding zoneinfo file exists. TZ_for_date=$TZDIR/$TZ <"$TZ_for_date" || { say >&2 "$0: time zone files are not set up correctly" exit 1 } esac # Use the proposed TZ to output the current date relative to UTC. # Loop until they agree in seconds. # Give up after 8 unsuccessful tries. extra_info= for i in 1 2 3 4 5 6 7 8 do TZdate=`LANG=C TZ="$TZ_for_date" date` UTdate=`LANG=C TZ=UTC0 date` TZsec=`expr "$TZdate" : '.*:\([0-5][0-9]\)'` UTsec=`expr "$UTdate" : '.*:\([0-5][0-9]\)'` case $TZsec in $UTsec) extra_info=" Selected time is now: $TZdate. Universal Time is now: $UTdate." break esac done # Output TZ info and ask the user to confirm. echo >&2 "" echo >&2 "The following information has been given:" echo >&2 "" case $country%$region%$coord in ?*%?*%) say >&2 " $country$newline $region";; ?*%%) say >&2 " $country";; %?*%?*) say >&2 " coord $coord$newline $region";; %%?*) say >&2 " coord $coord";; *) say >&2 " TZ='$TZ'" esac say >&2 "" say >&2 "Therefore TZ='$TZ' will be used.$extra_info" say >&2 "Is the above information OK?" doselect Yes No ok=$select_result case $ok in Yes) break esac do coord= done case $SHELL in *csh) file=.login line="setenv TZ '$TZ'";; *) file=.profile line="TZ='$TZ'; export TZ" esac test -t 1 && say >&2 " You can make this change permanent for yourself by appending the line $line to the file '$file' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the $0 command in shell scripts:" say "$TZ"