Linux tsuru-no-tsurugi 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.0.18 & Your IP : 216.73.217.105
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
etc /
alternatives /
Delete
Unzip
Name
Size
Permission
Date
Action
mecab-dictionary
[ DIR ]
drwxr-xr-x
2024-08-24 00:30
README
100
B
-rw-r--r--
2022-04-06 18:40
animate
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
animate-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
animate-im6.1.gz
2.13
KB
-rw-r--r--
2024-07-20 05:37
animate.1.gz
2.13
KB
-rw-r--r--
2024-07-20 05:37
arptables
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
arptables-restore
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
arptables-save
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
awk
688.46
KB
-rwxr-xr-x
2023-08-17 19:24
awk.1.gz
30.16
KB
-rw-r--r--
2023-08-17 19:24
builtins.7.gz
508
B
-rw-r--r--
2024-03-14 20:31
c++
910.82
KB
-rwxr-xr-x
2025-12-18 16:31
c++.1.gz
360.06
KB
-rw-r--r--
2025-12-18 16:31
c89
428
B
-rwxr-xr-x
2020-11-18 03:53
c89.1.gz
1.33
KB
-rw-r--r--
2020-11-18 03:53
c99
454
B
-rwxr-xr-x
2020-11-18 03:53
c99.1.gz
1.39
KB
-rw-r--r--
2021-08-05 16:36
cc
906.82
KB
-rwxr-xr-x
2025-12-18 16:31
cc.1.gz
360.06
KB
-rw-r--r--
2025-12-18 16:31
compare
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
compare-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
compare-im6.1.gz
2.14
KB
-rw-r--r--
2024-07-20 05:37
compare.1.gz
2.14
KB
-rw-r--r--
2024-07-20 05:37
composite
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
composite-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
composite-im6.1.gz
2.39
KB
-rw-r--r--
2024-07-20 05:37
composite.1.gz
2.39
KB
-rw-r--r--
2024-07-20 05:37
conjure
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
conjure-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
conjure-im6.1.gz
941
B
-rw-r--r--
2024-07-20 05:37
conjure.1.gz
941
B
-rw-r--r--
2024-07-20 05:37
convert
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
convert-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
convert-im6.1.gz
5.58
KB
-rw-r--r--
2024-07-20 05:37
convert.1.gz
5.58
KB
-rw-r--r--
2024-07-20 05:37
cpp
906.82
KB
-rwxr-xr-x
2025-12-18 16:31
display
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
display-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
display-im6.1.gz
2.87
KB
-rw-r--r--
2024-07-20 05:37
display.1.gz
2.87
KB
-rw-r--r--
2024-07-20 05:37
dotlock
15.14
KB
-rwxr-sr-x
2022-01-12 20:29
dotlock.1.gz
1.41
KB
-rw-r--r--
2022-01-12 20:29
ebtables
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
ebtables-restore
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
ebtables-save
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
editor
276.52
KB
-rwxr-xr-x
2026-06-04 07:51
editor.1.gz
7.39
KB
-rw-r--r--
2026-06-04 07:51
ex
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
ex.1.gz
5.38
KB
-rw-r--r--
2026-07-14 04:08
ex.da.1.gz
5.51
KB
-rw-r--r--
2026-07-14 04:08
ex.de.1.gz
6.72
KB
-rw-r--r--
2026-07-14 04:08
ex.fr.1.gz
6.37
KB
-rw-r--r--
2026-07-14 04:08
ex.it.1.gz
5.96
KB
-rw-r--r--
2026-07-14 04:08
ex.ja.1.gz
5.73
KB
-rw-r--r--
2026-07-14 04:08
ex.pl.1.gz
6.15
KB
-rw-r--r--
2026-07-14 04:08
ex.ru.1.gz
6.96
KB
-rw-r--r--
2026-07-14 04:08
faked.1.gz
1.16
KB
-rw-r--r--
2022-03-06 05:33
faked.es.1.gz
1.43
KB
-rw-r--r--
2022-03-06 05:33
faked.fr.1.gz
1.49
KB
-rw-r--r--
2022-03-06 05:33
faked.sv.1.gz
1.4
KB
-rw-r--r--
2022-03-06 05:33
fakeroot
3.9
KB
-rwxr-xr-x
2022-03-06 05:33
fakeroot.1.gz
3.91
KB
-rw-r--r--
2022-03-06 05:33
fakeroot.es.1.gz
4.4
KB
-rw-r--r--
2022-03-06 05:33
fakeroot.fr.1.gz
4.59
KB
-rw-r--r--
2022-03-06 05:33
fakeroot.sv.1.gz
4.19
KB
-rw-r--r--
2022-03-06 05:33
figlet
26.68
KB
-rwxr-xr-x
2021-12-25 23:30
frm
27.29
KB
-rwxr-xr-x
2022-01-12 20:29
frm.1.gz
1.39
KB
-rw-r--r--
2022-01-12 20:29
from
26.82
KB
-rwxr-xr-x
2022-01-12 20:29
from.1.gz
1.24
KB
-rw-r--r--
2022-01-12 20:29
ftp
178.9
KB
-rwxr-xr-x
2022-03-25 19:01
ftp.1.gz
16.84
KB
-rw-r--r--
2022-03-25 19:01
identify
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
identify-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
identify-im6.1.gz
2.05
KB
-rw-r--r--
2024-07-20 05:37
identify.1.gz
2.05
KB
-rw-r--r--
2024-07-20 05:37
import
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
import-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
import-im6.1.gz
2.17
KB
-rw-r--r--
2024-07-20 05:37
import.1.gz
2.17
KB
-rw-r--r--
2024-07-20 05:37
infobrowser
301.74
KB
-rwxr-xr-x
2022-02-06 21:48
infobrowser.1.gz
1.38
KB
-rw-r--r--
2022-02-06 21:48
ip6tables
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
ip6tables-restore
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
ip6tables-save
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
iptables
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
iptables-restore
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
iptables-save
219.04
KB
-rwxr-xr-x
2024-01-17 06:14
jsondiff
1004
B
-rwxr-xr-x
2021-09-29 19:31
lft
2.43
KB
-rwxr-xr-x
2016-08-30 00:45
lft.1.gz
7.3
KB
-rw-r--r--
2016-08-30 00:45
libblas.so.3-x86_64-linux-gnu
657.84
KB
-rw-r--r--
2022-01-12 17:29
lzcat
82.52
KB
-rwxr-xr-x
2026-05-29 01:06
lzcat.1.gz
20.17
KB
-rw-r--r--
2026-05-29 01:06
lzcmp
6.86
KB
-rwxr-xr-x
2026-05-29 01:06
lzcmp.1.gz
664
B
-rw-r--r--
2026-05-29 01:06
lzdiff
6.86
KB
-rwxr-xr-x
2026-05-29 01:06
lzdiff.1.gz
664
B
-rw-r--r--
2026-05-29 01:06
lzegrep
5.87
KB
-rwxr-xr-x
2026-05-29 01:06
lzegrep.1.gz
706
B
-rw-r--r--
2026-05-29 01:06
lzfgrep
5.87
KB
-rwxr-xr-x
2026-05-29 01:06
lzfgrep.1.gz
706
B
-rw-r--r--
2026-05-29 01:06
lzgrep
5.87
KB
-rwxr-xr-x
2026-05-29 01:06
lzgrep.1.gz
706
B
-rw-r--r--
2026-05-29 01:06
lzless
1.76
KB
-rwxr-xr-x
2026-05-29 01:06
lzless.1.gz
743
B
-rw-r--r--
2026-05-29 01:06
lzma
82.52
KB
-rwxr-xr-x
2026-05-29 01:06
lzma.1.gz
20.17
KB
-rw-r--r--
2026-05-29 01:06
lzmore
2.11
KB
-rwxr-xr-x
2026-05-29 01:06
lzmore.1.gz
636
B
-rw-r--r--
2026-05-29 01:06
mail
229.38
KB
-rwxr-xr-x
2022-01-12 20:29
mail.1.gz
1.8
KB
-rw-r--r--
2022-01-12 20:29
mailx
229.38
KB
-rwxr-xr-x
2022-01-12 20:29
mailx.1.gz
1.8
KB
-rw-r--r--
2022-01-12 20:29
messages
14.67
KB
-rwxr-xr-x
2022-01-12 20:29
messages.1.gz
1.18
KB
-rw-r--r--
2022-01-12 20:29
mogrify
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
mogrify-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
mogrify-im6.1.gz
5.55
KB
-rw-r--r--
2024-07-20 05:37
mogrify.1.gz
5.55
KB
-rw-r--r--
2024-07-20 05:37
montage
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
montage-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
montage-im6.1.gz
2.89
KB
-rw-r--r--
2024-07-20 05:37
montage.1.gz
2.89
KB
-rw-r--r--
2024-07-20 05:37
movemail
40.26
KB
-rwxr-xr-x
2022-01-12 20:29
movemail.1.gz
1.48
KB
-rw-r--r--
2022-01-12 20:29
mt
66.73
KB
-rwxr-xr-x
2024-04-28 21:30
mt.1.gz
1.98
KB
-rw-r--r--
2024-04-28 21:30
my.cnf
1.1
KB
-rw-r--r--
2024-05-26 06:07
nawk
688.46
KB
-rwxr-xr-x
2023-08-17 19:24
nawk.1.gz
30.16
KB
-rw-r--r--
2023-08-17 19:24
nc
38.63
KB
-rwxr-xr-x
2022-02-23 20:09
nc.1.gz
6.16
KB
-rw-r--r--
2022-02-23 20:09
netcat
38.63
KB
-rwxr-xr-x
2022-02-23 20:09
netcat.1.gz
6.16
KB
-rw-r--r--
2022-02-23 20:09
newt-palette
160
B
-rw-r--r--
2019-12-19 01:12
nodejs
87.17
MB
-rwxr-xr-x
2025-03-27 10:05
nodejs.1.gz
7.9
KB
-rw-r--r--
2025-03-27 22:36
open
18.06
KB
-rwxr-xr-x
2026-07-03 22:05
open.1.gz
1.5
KB
-rw-r--r--
2026-07-03 22:05
org.fedoraproject.FirewallD1.policy
3.93
KB
-rw-r--r--
2022-03-28 16:48
ovs-vswitchd
2.57
MB
-rwxr-xr-x
2026-03-25 00:13
pager
194.38
KB
-rwxr-xr-x
2024-04-28 05:32
pager.1.gz
22.41
KB
-rw-r--r--
2024-04-28 05:32
phar
14.88
KB
-rwxr-xr-x
2026-06-06 15:34
phar.1.gz
2.75
KB
-rw-r--r--
2026-06-06 15:34
phar.phar
14.88
KB
-rwxr-xr-x
2026-06-06 15:34
phar.phar.1.gz
36
B
-rw-r--r--
2026-06-06 15:34
php
5.75
MB
-rwxr-xr-x
2026-06-06 15:34
php.1.gz
3.71
KB
-rw-r--r--
2026-06-06 15:34
pico
276.52
KB
-rwxr-xr-x
2026-06-04 07:51
pico.1.gz
7.39
KB
-rw-r--r--
2026-06-04 07:51
pinentry
58.65
KB
-rwxr-xr-x
2022-03-25 01:31
pinentry.1.gz
1.38
KB
-rw-r--r--
2022-03-25 01:31
pybabel
953
B
-rwxr-xr-x
2021-05-02 00:13
rcp
130.59
KB
-rwxr-xr-x
2026-07-10 03:38
rcp.1.gz
3.09
KB
-rw-r--r--
2026-07-10 03:38
readmsg
35.91
KB
-rwxr-xr-x
2022-01-12 20:29
readmsg.1.gz
1.42
KB
-rw-r--r--
2022-01-12 20:29
rlogin
827.04
KB
-rwxr-xr-x
2026-07-10 03:38
rlogin.1.gz
14.92
KB
-rw-r--r--
2026-07-10 03:38
rmt
58.57
KB
-rwxr-xr-x
2026-07-15 23:39
rmt.8.gz
2.34
KB
-rw-r--r--
2026-07-15 23:39
rsh
827.04
KB
-rwxr-xr-x
2026-07-10 03:38
rsh.1.gz
14.92
KB
-rw-r--r--
2026-07-10 03:38
rview
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
rvim
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
shimx64.efi.signed
944.01
KB
-rw-r--r--
2024-04-04 21:54
stream
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
stream-im6
14.15
KB
-rwxr-xr-x
2024-07-20 05:37
stream-im6.1.gz
1.43
KB
-rw-r--r--
2024-07-20 05:37
stream.1.gz
1.43
KB
-rw-r--r--
2024-07-20 05:37
tcptraceroute
1.56
KB
-rwxr-xr-x
2016-08-30 00:45
tcptraceroute.8.gz
7.3
KB
-rw-r--r--
2016-08-30 00:45
tdbbackup
14.3
KB
-rwxr-xr-x
2022-01-14 05:34
tdbbackup.8.gz
1.62
KB
-rw-r--r--
2022-01-14 05:34
telnet
107.56
KB
-rwxr-xr-x
2022-03-25 01:20
telnet.1.gz
8.8
KB
-rw-r--r--
2022-03-25 01:20
text.plymouth
205
B
-rw-r--r--
2024-10-14 20:22
traceproto
2.82
KB
-rwxr-xr-x
2016-08-30 00:45
traceproto.1.gz
7.3
KB
-rw-r--r--
2016-08-30 00:45
traceroute
67.16
KB
-rwxr-xr-x
2016-08-30 00:45
traceroute.1.gz
7.3
KB
-rw-r--r--
2016-08-30 00:45
traceroute.sbin
67.16
KB
-rwxr-xr-x
2016-08-30 00:45
traceroute6
67.16
KB
-rwxr-xr-x
2016-08-30 00:45
traceroute6.1.gz
7.3
KB
-rw-r--r--
2016-08-30 00:45
unlzma
82.52
KB
-rwxr-xr-x
2026-05-29 01:06
unlzma.1.gz
20.17
KB
-rw-r--r--
2026-05-29 01:06
vi
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
vi.1.gz
5.38
KB
-rw-r--r--
2026-07-14 04:08
vi.da.1.gz
5.51
KB
-rw-r--r--
2026-07-14 04:08
vi.de.1.gz
6.72
KB
-rw-r--r--
2026-07-14 04:08
vi.fr.1.gz
6.37
KB
-rw-r--r--
2026-07-14 04:08
vi.it.1.gz
5.96
KB
-rw-r--r--
2026-07-14 04:08
vi.ja.1.gz
5.73
KB
-rw-r--r--
2026-07-14 04:08
vi.pl.1.gz
6.15
KB
-rw-r--r--
2026-07-14 04:08
vi.ru.1.gz
6.96
KB
-rw-r--r--
2026-07-14 04:08
view
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
view.1.gz
5.38
KB
-rw-r--r--
2026-07-14 04:08
view.da.1.gz
5.51
KB
-rw-r--r--
2026-07-14 04:08
view.de.1.gz
6.72
KB
-rw-r--r--
2026-07-14 04:08
view.fr.1.gz
6.37
KB
-rw-r--r--
2026-07-14 04:08
view.it.1.gz
5.96
KB
-rw-r--r--
2026-07-14 04:08
view.ja.1.gz
5.73
KB
-rw-r--r--
2026-07-14 04:08
view.pl.1.gz
6.15
KB
-rw-r--r--
2026-07-14 04:08
view.ru.1.gz
6.96
KB
-rw-r--r--
2026-07-14 04:08
vim
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
vimdiff
3.61
MB
-rwxr-xr-x
2026-07-14 04:08
vtrgb
158
B
-rw-r--r--
2021-11-23 01:39
which
946
B
-rwxr-xr-x
2022-03-23 22:49
which.1.gz
431
B
-rw-r--r--
2022-03-23 22:49
which.de1.gz
797
B
-rw-r--r--
2022-03-23 22:49
which.es1.gz
556
B
-rw-r--r--
2022-03-23 22:49
which.fr1.gz
864
B
-rw-r--r--
2022-03-23 22:49
which.it1.gz
553
B
-rw-r--r--
2022-03-23 22:49
which.ja1.gz
685
B
-rw-r--r--
2022-03-23 22:49
which.pl1.gz
751
B
-rw-r--r--
2022-03-23 22:49
which.sl1.gz
616
B
-rw-r--r--
2022-03-23 22:49
write
22.38
KB
-rwxr-xr-x
2026-03-07 01:10
write.1.gz
1.38
KB
-rw-r--r--
2026-03-07 01:10
www-browser
1.89
MB
-rwxr-xr-x
2021-10-28 11:31
www-browser.1.gz
14.42
KB
-rw-r--r--
2021-10-28 11:31
Save
Rename
#!/bin/sh # xzgrep -- a wrapper around a grep program that decompresses files as needed # Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca> # Copyright (C) 1998, 2001, 2002, 2006, 2007 Free Software Foundation # Copyright (C) 1993 Jean-loup Gailly # Modified for XZ Utils by Andrew Dudman and Lasse Collin. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. #SET_PATH - This line is a placeholder to ease patching this script. # Instead of unsetting XZ_OPT, just make sure that xz will use file format # autodetection. This way memory usage limit and thread limit can be # specified via XZ_OPT. With gzip, bzip2, and lzop it's OK to just unset the # environment variables. xz='xz --format=auto' unset GZIP BZIP BZIP2 LZOP case ${0##*/} in *egrep*) prog=xzegrep; grep=${GREP:-egrep};; *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};; *) prog=xzgrep; grep=${GREP:-grep};; esac version="$prog (XZ Utils) 5.2.5" usage="Usage: ${0##*/} [OPTION]... [-e] PATTERN [FILE]... Look for instances of PATTERN in the input FILEs, using their uncompressed contents if they are compressed. OPTIONs are the same as for '$grep'. Report bugs to <lasse.collin@tukaani.org>." # sed script to escape all ' for the shell, and then (to handle trailing # newlines correctly) turn trailing X on last line into '. escape=' s/'\''/'\''\\'\'''\''/g $s/X$/'\''/ ' operands= have_pat=0 files_with_matches=0 files_without_matches=0 no_filename=0 with_filename=0 while test $# -ne 0; do option=$1 shift optarg= case $option in (-[0123456789abcdhHiIKLlnoqrRsTuUvVwxyzZ]?*) arg2=-\'$(expr "X${option}X" : 'X-.[0-9]*\(.*\)' | sed "$escape") eval "set -- $arg2 "'${1+"$@"}' option=$(expr "X$option" : 'X\(-.[0-9]*\)');; (--binary-*=* | --[lm]a*=* | --reg*=*) ;; (-[ABCDefm] | --binary-* | --file | --[lm]a* | --reg*) case ${1?"$option option requires an argument"} in (*\'*) optarg=" '"$(printf '%sX\n' "$1" | sed "$escape");; (*) optarg=" '$1'";; esac shift;; (--) break;; (-?*) ;; (*) case $option in (*\'*) operands="$operands '"$(printf '%sX\n' "$option" | sed "$escape");; (*) operands="$operands '$option'";; esac ${POSIXLY_CORRECT+break} continue;; esac case $option in (-[drRzZ] | --di* | --exc* | --inc* | --rec* | --nu*) printf >&2 '%s: %s: Option not supported\n' "$0" "$option" exit 2;; (-[ef]* | --file | --file=* | --reg*) have_pat=1;; (--h | --he | --hel | --help) echo "$usage" || exit 2 exit;; (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \ | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \ | --with-filename) with_filename=1 continue;; (-l | --files-with-*) files_with_matches=1 continue;; (-L | --files-witho*) files_without_matches=1 continue;; (-h | --no-f*) no_filename=1;; (-V | --v | --ve | --ver | --vers | --versi | --versio | --version) echo "$version" || exit 2 exit;; esac case $option in (*\'?*) option=\'$(expr "X${option}X" : 'X\(.*\)' | sed "$escape");; (*) option="'$option'";; esac grep="$grep $option$optarg" done if test $files_with_matches -eq 1 || test $files_without_matches -eq 1; then grep="$grep -q" fi eval "set -- $operands "'${1+"$@"}' if test $have_pat -eq 0; then case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in (*\'*) grep="$grep -- '"$(printf '%sX\n' "$1" | sed "$escape");; (*) grep="$grep -- '$1'";; esac shift fi if test $# -eq 0; then set -- - fi exec 3>&1 # res=1 means that no file matched yet res=1 for i; do case $i in *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdf";; *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdf";; *[-.]lzo | *[-.]tzo) uncompress="lzop -cdf";; *[-.]zst | *[-.]tzst) uncompress="zstd -cdfq";; # zstd needs -q. *) uncompress="$xz -cdf";; esac # Fail if xz or grep (or sed) fails. xz_status=$( exec 5>&1 ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- | if test $files_with_matches -eq 1; then eval "$grep" && { printf '%s\n' "$i" || exit 2; } elif test $files_without_matches -eq 1; then eval "$grep" || { r=$? if test $r -eq 1; then printf '%s\n' "$i" || r=2 fi exit $r } elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then eval "$grep" else # Append a colon so that the last character will never be a newline # which would otherwise get lost in shell command substitution. i="$i:" # Escape & \ | and newlines only if such characters are present # (speed optimization). case $i in (*' '* | *'&'* | *'\'* | *'|'*) i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/');; esac # $i already ends with a colon so don't add it here. sed_script="s|^|$i|" # Fail if grep or sed fails. r=$( exec 4>&1 (eval "$grep" 4>&-; echo $? >&4) 3>&- | LC_ALL=C sed "$sed_script" >&3 4>&- ) || r=2 exit $r fi >&3 5>&- ) r=$? # fail occurred previously, nothing worse can happen test $res -gt 1 && continue if test "$xz_status" -eq 0; then : elif test "$xz_status" -ge 128 \ && test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE"; then : else r=2 fi # still no match test $r -eq 1 && continue # 0 == match, >=2 == fail res=$r done exit $res