Linux web-conference.aiou.edu.pk 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 172.16.50.247 | : 18.190.253.57
Cant Read [ /etc/named.conf ]
7.4.3-4ubuntu2.28
appadmin
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
bash-completion /
completions /
[ HOME SHELL ]
Name
Size
Permission
Action
2to3
908
B
-rw-r--r--
7z
4.12
KB
-rw-r--r--
7za
4.12
KB
-rw-r--r--
_adb
1.74
KB
-rw-r--r--
_cal
926
B
-rw-r--r--
_chfn
238
B
-rw-r--r--
_chsh
690
B
-rw-r--r--
_dmesg
909
B
-rw-r--r--
_eject
793
B
-rw-r--r--
_hexdump
669
B
-rw-r--r--
_hwclock
605
B
-rw-r--r--
_ionice
1.23
KB
-rw-r--r--
_look
447
B
-rw-r--r--
_mock
2.01
KB
-rw-r--r--
_modules
2.48
KB
-rw-r--r--
_mount
2.02
KB
-rw-r--r--
_mount.linux
10.47
KB
-rw-r--r--
_newgrp
432
B
-rw-r--r--
_nmcli
6.1
KB
-rw-r--r--
_renice
769
B
-rw-r--r--
_repomanage
605
B
-rw-r--r--
_reptyr
547
B
-rw-r--r--
_rfkill
931
B
-rw-r--r--
_rtcwake
863
B
-rw-r--r--
_runuser
241
B
-rw-r--r--
_su
981
B
-rw-r--r--
_svn
8.62
KB
-rw-r--r--
_svnadmin
2.27
KB
-rw-r--r--
_svnlook
1.94
KB
-rw-r--r--
_udevadm
2.08
KB
-rw-r--r--
_umount
629
B
-rw-r--r--
_umount.linux
4.47
KB
-rw-r--r--
_write
239
B
-rw-r--r--
_xm
7.53
KB
-rw-r--r--
_yum
4.37
KB
-rw-r--r--
a2disconf
1.44
KB
-rw-r--r--
a2dismod
1.44
KB
-rw-r--r--
a2dissite
1.44
KB
-rw-r--r--
a2enconf
1.44
KB
-rw-r--r--
a2enmod
1.44
KB
-rw-r--r--
a2ensite
1.44
KB
-rw-r--r--
a2x
895
B
-rw-r--r--
abook
1.18
KB
-rw-r--r--
aclocal
844
B
-rw-r--r--
aclocal-1.10
844
B
-rw-r--r--
aclocal-1.11
844
B
-rw-r--r--
aclocal-1.12
844
B
-rw-r--r--
aclocal-1.13
844
B
-rw-r--r--
aclocal-1.14
844
B
-rw-r--r--
aclocal-1.15
844
B
-rw-r--r--
aclocal-1.16
844
B
-rw-r--r--
acpi
452
B
-rw-r--r--
add_members
761
B
-rw-r--r--
addpart
447
B
-rw-r--r--
alias
490
B
-rw-r--r--
alpine
873
B
-rw-r--r--
alternatives
2.35
KB
-rw-r--r--
animate
8.79
KB
-rw-r--r--
ant
2.71
KB
-rw-r--r--
apache2ctl
380
B
-rw-r--r--
appdata-validate
788
B
-rw-r--r--
apropos
2.8
KB
-rw-r--r--
apt
6.94
KB
-rw-r--r--
apt-build
1.42
KB
-rw-r--r--
apt-cache
1.99
KB
-rw-r--r--
apt-get
3.7
KB
-rw-r--r--
aptitude
3
KB
-rw-r--r--
aptitude-curses
3
KB
-rw-r--r--
arch
1.05
KB
-rw-r--r--
arm-koji
6.17
KB
-rw-r--r--
arp
1.55
KB
-rw-r--r--
arping
599
B
-rw-r--r--
arpspoof
564
B
-rw-r--r--
asciidoc
1.16
KB
-rw-r--r--
asciidoc.py
1.16
KB
-rw-r--r--
aspell
3.29
KB
-rw-r--r--
autoconf
947
B
-rw-r--r--
autoheader
1009
B
-rw-r--r--
automake
868
B
-rw-r--r--
automake-1.10
868
B
-rw-r--r--
automake-1.11
868
B
-rw-r--r--
automake-1.12
868
B
-rw-r--r--
automake-1.13
868
B
-rw-r--r--
automake-1.14
868
B
-rw-r--r--
automake-1.15
868
B
-rw-r--r--
automake-1.16
868
B
-rw-r--r--
autoreconf
1009
B
-rw-r--r--
autorpm
348
B
-rw-r--r--
autoscan
739
B
-rw-r--r--
autossh
15.54
KB
-rw-r--r--
autoupdate
739
B
-rw-r--r--
avctrl
471
B
-rw-r--r--
badblocks
595
B
-rw-r--r--
bind
832
B
-rw-r--r--
bk
429
B
-rw-r--r--
blkdiscard
639
B
-rw-r--r--
blkid
2.07
KB
-rw-r--r--
blkzone
971
B
-rw-r--r--
blockdev
725
B
-rw-r--r--
bootctl
2.85
KB
-rw-r--r--
brctl
1.02
KB
-rw-r--r--
bsdtar
18.47
KB
-rw-r--r--
btdownloadcurses.py
1.03
KB
-rw-r--r--
btdownloadgui.py
1.03
KB
-rw-r--r--
btdownloadheadless.py
1.03
KB
-rw-r--r--
btrfs
3.38
KB
-rw-r--r--
busctl
7.18
KB
-rw-r--r--
bzip2
1.06
KB
-rw-r--r--
c++
2.58
KB
-rw-r--r--
cancel
555
B
-rw-r--r--
cardctl
380
B
-rw-r--r--
carton
1.8
KB
-rw-r--r--
cc
2.58
KB
-rw-r--r--
ccache
1014
B
-rw-r--r--
ccze
1.16
KB
-rw-r--r--
cdrecord
3.49
KB
-rw-r--r--
cfagent
419
B
-rw-r--r--
cfdisk
546
B
-rw-r--r--
cfrun
1.25
KB
-rw-r--r--
chage
651
B
-rw-r--r--
change_pw
529
B
-rw-r--r--
chcpu
1.49
KB
-rw-r--r--
check_db
374
B
-rw-r--r--
check_perms
319
B
-rw-r--r--
checksec
738
B
-rw-r--r--
chgrp
949
B
-rw-r--r--
chkconfig
903
B
-rw-r--r--
chmem
501
B
-rw-r--r--
chmod
867
B
-rw-r--r--
chown
1.08
KB
-rw-r--r--
chpasswd
687
B
-rw-r--r--
chrome
1.37
KB
-rw-r--r--
chromium
1.37
KB
-rw-r--r--
chromium-browser
1.37
KB
-rw-r--r--
chronyc
1.53
KB
-rw-r--r--
chrpath
528
B
-rw-r--r--
chrt
920
B
-rw-r--r--
ci
890
B
-rw-r--r--
ciptool
9.45
KB
-rw-r--r--
civclient
1.02
KB
-rw-r--r--
civserver
473
B
-rw-r--r--
cksfv
520
B
-rw-r--r--
cleanarch
352
B
-rw-r--r--
clisp
668
B
-rw-r--r--
clone_member
540
B
-rw-r--r--
cloud-init
3.24
KB
-rw-r--r--
clzip
1.1
KB
-rw-r--r--
co
890
B
-rw-r--r--
colormake
6.02
KB
-rw-r--r--
compare
8.79
KB
-rw-r--r--
compgen
1.43
KB
-rw-r--r--
complete
1.43
KB
-rw-r--r--
composite
8.79
KB
-rw-r--r--
config_list
580
B
-rw-r--r--
configure
1.16
KB
-rw-r--r--
conjure
8.79
KB
-rw-r--r--
convert
8.79
KB
-rw-r--r--
cowsay
543
B
-rw-r--r--
cowthink
543
B
-rw-r--r--
cpan2dist
1.19
KB
-rw-r--r--
cpio
2.85
KB
-rw-r--r--
cppcheck
2.54
KB
-rw-r--r--
createdb
4.19
KB
-rw-r--r--
createuser
4.19
KB
-rw-r--r--
crontab
1.16
KB
-rw-r--r--
cryptdisks
1.18
KB
-rw-r--r--
cryptsetup
2.91
KB
-rw-r--r--
ctrlaltdel
335
B
-rw-r--r--
curl
3.08
KB
-rw-r--r--
cvs
11.71
KB
-rw-r--r--
cvsps
1.45
KB
-rw-r--r--
dcop
379
B
-rw-r--r--
dd
1.26
KB
-rw-r--r--
debconf
294
B
-rw-r--r--
debconf-show
294
B
-rw-r--r--
declare
1.25
KB
-rw-r--r--
deja-dup
681
B
-rw-r--r--
delpart
526
B
-rw-r--r--
desktop-file-validate
472
B
-rw-r--r--
dfutool
9.45
KB
-rw-r--r--
dhclient
696
B
-rw-r--r--
dict
1.76
KB
-rw-r--r--
display
8.79
KB
-rw-r--r--
dmesg
1.15
KB
-rw-r--r--
dmypy
1.05
KB
-rw-r--r--
dnssec-keygen
1.13
KB
-rw-r--r--
dnsspoof
500
B
-rw-r--r--
docker
111.88
KB
-rw-r--r--
dot
1.25
KB
-rw-r--r--
dpkg
3.97
KB
-rw-r--r--
dpkg-deb
3.97
KB
-rw-r--r--
dpkg-query
3.97
KB
-rw-r--r--
dpkg-reconfigure
3.97
KB
-rw-r--r--
dpkg-source
3.25
KB
-rw-r--r--
dropdb
4.19
KB
-rw-r--r--
dropuser
4.19
KB
-rw-r--r--
dselect
615
B
-rw-r--r--
dsniff
512
B
-rw-r--r--
dumpdb
371
B
-rw-r--r--
dumpe2fs
518
B
-rw-r--r--
e2freefrag
458
B
-rw-r--r--
e2label
292
B
-rw-r--r--
eatmydata
31
B
-rw-r--r--
ebtables
3.53
KB
-rw-r--r--
ecryptfs-migrate-home
497
B
-rw-r--r--
edquota
3.58
KB
-rw-r--r--
eog
634
B
-rw-r--r--
ether-wake
537
B
-rw-r--r--
etherwake
537
B
-rw-r--r--
ethtool
23.46
KB
-rw-r--r--
evince
935
B
-rw-r--r--
explodepkg
152
B
-rw-r--r--
export
1.56
KB
-rw-r--r--
f77
2.58
KB
-rw-r--r--
f95
2.58
KB
-rw-r--r--
faillog
629
B
-rw-r--r--
fallocate
721
B
-rw-r--r--
fbgs
1.52
KB
-rw-r--r--
fbi
1.77
KB
-rw-r--r--
fdformat
566
B
-rw-r--r--
fdisk
1.79
KB
-rw-r--r--
feh
4.04
KB
-rw-r--r--
file
743
B
-rw-r--r--
file-roller
1.07
KB
-rw-r--r--
filebucket
9.51
KB
-rw-r--r--
filefrag
350
B
-rw-r--r--
filesnarf
447
B
-rw-r--r--
fincore
916
B
-rw-r--r--
find
3.81
KB
-rw-r--r--
find_member
535
B
-rw-r--r--
findfs
695
B
-rw-r--r--
findmnt
3.12
KB
-rw-r--r--
fio
2.31
KB
-rw-r--r--
firefox
1.14
KB
-rw-r--r--
flake8
987
B
-rw-r--r--
flock
874
B
-rw-r--r--
freebsd-update
587
B
-rw-r--r--
freeciv
1.02
KB
-rw-r--r--
freeciv-gtk2
1.02
KB
-rw-r--r--
freeciv-gtk3
1.02
KB
-rw-r--r--
freeciv-sdl
1.02
KB
-rw-r--r--
freeciv-server
473
B
-rw-r--r--
freeciv-xaw
1.02
KB
-rw-r--r--
fsck
787
B
-rw-r--r--
fsck.cramfs
684
B
-rw-r--r--
fsck.minix
383
B
-rw-r--r--
fsfreeze
524
B
-rw-r--r--
fstrim
715
B
-rw-r--r--
function
1.25
KB
-rw-r--r--
fusermount
640
B
-rw-r--r--
fwupdagent
610
B
-rw-r--r--
fwupdmgr
3.65
KB
-rw-r--r--
fwupdtool
3.26
KB
-rw-r--r--
g++
2.58
KB
-rw-r--r--
g++-5
2.58
KB
-rw-r--r--
g++-6
2.58
KB
-rw-r--r--
g++-7
2.58
KB
-rw-r--r--
g++-8
2.58
KB
-rw-r--r--
g4
1.44
KB
-rw-r--r--
g77
2.58
KB
-rw-r--r--
g95
2.58
KB
-rw-r--r--
gapplication
1.36
KB
-rw-r--r--
gcc
2.58
KB
-rw-r--r--
gcc-5
2.58
KB
-rw-r--r--
gcc-6
2.58
KB
-rw-r--r--
gcc-7
2.58
KB
-rw-r--r--
gcc-8
2.58
KB
-rw-r--r--
gccgo
2.58
KB
-rw-r--r--
gccgo-5
2.58
KB
-rw-r--r--
gccgo-6
2.58
KB
-rw-r--r--
gccgo-7
2.58
KB
-rw-r--r--
gccgo-8
2.58
KB
-rw-r--r--
gcj
2.58
KB
-rw-r--r--
gcl
615
B
-rw-r--r--
gdb
1.6
KB
-rw-r--r--
gdbus
935
B
-rw-r--r--
genaliases
322
B
-rw-r--r--
gendiff
267
B
-rw-r--r--
genisoimage
861
B
-rw-r--r--
geoiplookup
677
B
-rw-r--r--
geoiplookup6
677
B
-rw-r--r--
getconf
798
B
-rw-r--r--
getent
1.92
KB
-rw-r--r--
getopt
815
B
-rw-r--r--
gfortran
2.58
KB
-rw-r--r--
gfortran-5
2.58
KB
-rw-r--r--
gfortran-6
2.58
KB
-rw-r--r--
gfortran-7
2.58
KB
-rw-r--r--
gfortran-8
2.58
KB
-rw-r--r--
gio
3.67
KB
-rw-r--r--
git
68.43
KB
-rw-r--r--
gitk
68.43
KB
-rw-r--r--
gkrellm
915
B
-rw-r--r--
gkrellm2
915
B
-rw-r--r--
gm
854
B
-rw-r--r--
gmake
6.02
KB
-rw-r--r--
gmplayer
11.02
KB
-rw-r--r--
gnatmake
1015
B
-rw-r--r--
gnokii
6.76
KB
-rw-r--r--
gnome-mplayer
940
B
-rw-r--r--
gnome-screenshot
793
B
-rw-r--r--
gnumake
6.02
KB
-rw-r--r--
google-chrome
1.37
KB
-rw-r--r--
google-chrome-stable
1.37
KB
-rw-r--r--
gpasswd
598
B
-rw-r--r--
gpc
2.58
KB
-rw-r--r--
gpg
1.24
KB
-rw-r--r--
gpg2
1.3
KB
-rw-r--r--
gpgv
1.09
KB
-rw-r--r--
gpgv2
1.09
KB
-rw-r--r--
gphoto2
1.36
KB
-rw-r--r--
gprof
1.27
KB
-rw-r--r--
gresource
1.32
KB
-rw-r--r--
groupadd
610
B
-rw-r--r--
groupdel
536
B
-rw-r--r--
groupmems
603
B
-rw-r--r--
groupmod
681
B
-rw-r--r--
growisofs
888
B
-rw-r--r--
grpck
496
B
-rw-r--r--
grub
10.39
KB
-rw-r--r--
grub-bios-setup
10.39
KB
-rw-r--r--
grub-editenv
10.39
KB
-rw-r--r--
grub-install
10.39
KB
-rw-r--r--
grub-mkconfig
10.39
KB
-rw-r--r--
grub-mkfont
10.39
KB
-rw-r--r--
grub-mkimage
10.39
KB
-rw-r--r--
grub-mkpasswd-pbkdf2
10.39
KB
-rw-r--r--
grub-mkrescue
10.39
KB
-rw-r--r--
grub-probe
10.39
KB
-rw-r--r--
grub-reboot
10.39
KB
-rw-r--r--
grub-script-check
10.39
KB
-rw-r--r--
grub-set-default
10.39
KB
-rw-r--r--
gsettings
2.76
KB
-rw-r--r--
gssdp-discover
866
B
-rw-r--r--
gtar
18.47
KB
-rw-r--r--
gzip
1.14
KB
-rw-r--r--
hciattach
9.45
KB
-rw-r--r--
hciconfig
9.45
KB
-rw-r--r--
hcitool
9.45
KB
-rw-r--r--
hd
669
B
-rw-r--r--
hddtemp
871
B
-rw-r--r--
hid2hci
348
B
-rw-r--r--
host
1.96
KB
-rw-r--r--
hostname
485
B
-rw-r--r--
hostnamectl
2.02
KB
-rw-r--r--
hping
786
B
-rw-r--r--
hping2
786
B
-rw-r--r--
hping3
786
B
-rw-r--r--
htop
802
B
-rw-r--r--
htpasswd
912
B
-rw-r--r--
hunspell
1
KB
-rw-r--r--
hwclock
960
B
-rw-r--r--
iceweasel
1.14
KB
-rw-r--r--
iconv
904
B
-rw-r--r--
id
435
B
-rw-r--r--
identify
8.79
KB
-rw-r--r--
idn
657
B
-rw-r--r--
ifdown
898
B
-rw-r--r--
ifquery
898
B
-rw-r--r--
ifstat
1.93
KB
-rw-r--r--
ifstatus
898
B
-rw-r--r--
iftop
504
B
-rw-r--r--
ifup
898
B
-rw-r--r--
import
8.79
KB
-rw-r--r--
influx
824
B
-rw-r--r--
info
1.88
KB
-rw-r--r--
inject
508
B
-rw-r--r--
inotifywait
1.23
KB
-rw-r--r--
inotifywatch
1.23
KB
-rw-r--r--
insmod
517
B
-rw-r--r--
insmod.static
517
B
-rw-r--r--
installpkg
733
B
-rw-r--r--
interdiff
763
B
-rw-r--r--
invoke-rc.d
1.19
KB
-rw-r--r--
ionice
1.13
KB
-rw-r--r--
ip
10.25
KB
-rw-r--r--
ipcmk
576
B
-rw-r--r--
ipcrm
1.39
KB
-rw-r--r--
ipcs
514
B
-rw-r--r--
iperf
1.98
KB
-rw-r--r--
iperf3
1.98
KB
-rw-r--r--
ipmitool
5.61
KB
-rw-r--r--
ipsec
3.1
KB
-rw-r--r--
iptables
1.84
KB
-rw-r--r--
ipv6calc
1
KB
-rw-r--r--
iscsiadm
1.87
KB
-rw-r--r--
isort
1.24
KB
-rw-r--r--
isosize
529
B
-rw-r--r--
isql
352
B
-rw-r--r--
iwconfig
2.73
KB
-rw-r--r--
iwlist
613
B
-rw-r--r--
iwpriv
735
B
-rw-r--r--
iwspy
484
B
-rw-r--r--
jar
499
B
-rw-r--r--
jarsigner
1.61
KB
-rw-r--r--
java
8.71
KB
-rw-r--r--
javac
8.71
KB
-rw-r--r--
javadoc
8.71
KB
-rw-r--r--
javaws
770
B
-rw-r--r--
journalctl
5.87
KB
-rw-r--r--
jpegoptim
878
B
-rw-r--r--
jps
595
B
-rw-r--r--
jq
1.17
KB
-rw-r--r--
jshint
886
B
-rw-r--r--
json_xs
865
B
-rw-r--r--
jsonschema
635
B
-rw-r--r--
k3b
1.13
KB
-rw-r--r--
kcov
1.72
KB
-rw-r--r--
kernel-install
1.64
KB
-rw-r--r--
kill
577
B
-rw-r--r--
killall
774
B
-rw-r--r--
kldload
475
B
-rw-r--r--
kldunload
372
B
-rw-r--r--
kmod
3.16
KB
-rw-r--r--
koji
6.17
KB
-rw-r--r--
kplayer
11.02
KB
-rw-r--r--
ktutil
2.93
KB
-rw-r--r--
l2ping
9.45
KB
-rw-r--r--
larch
1.93
KB
-rw-r--r--
last
949
B
-rw-r--r--
lastlog
573
B
-rw-r--r--
lbzip2
1.06
KB
-rw-r--r--
ldapadd
4.36
KB
-rw-r--r--
ldapcompare
4.36
KB
-rw-r--r--
ldapdelete
4.36
KB
-rw-r--r--
ldapmodify
4.36
KB
-rw-r--r--
ldapmodrdn
4.36
KB
-rw-r--r--
ldappasswd
4.36
KB
-rw-r--r--
ldapsearch
4.36
KB
-rw-r--r--
ldapvi
1.35
KB
-rw-r--r--
ldapwhoami
4.36
KB
-rw-r--r--
ldattach
1.44
KB
-rw-r--r--
lftp
683
B
-rw-r--r--
lftpget
306
B
-rw-r--r--
lilo
1.16
KB
-rw-r--r--
links
3.1
KB
-rw-r--r--
links2
3.1
KB
-rw-r--r--
lintian
5.25
KB
-rw-r--r--
lintian-info
5.25
KB
-rw-r--r--
lisp
633
B
-rw-r--r--
list_admins
385
B
-rw-r--r--
list_lists
465
B
-rw-r--r--
list_members
852
B
-rw-r--r--
list_owners
411
B
-rw-r--r--
locale-gen
710
B
-rw-r--r--
localectl
3.24
KB
-rw-r--r--
logger
1.52
KB
-rw-r--r--
loginctl
3.97
KB
-rw-r--r--
losetup
1.7
KB
-rw-r--r--
lpq
594
B
-rw-r--r--
lpr
904
B
-rw-r--r--
lrzip
1.09
KB
-rw-r--r--
lsblk
1.98
KB
-rw-r--r--
lscpu
1.04
KB
-rw-r--r--
lsipc
1.28
KB
-rw-r--r--
lslocks
1.06
KB
-rw-r--r--
lslogins
1.69
KB
-rw-r--r--
lsmem
1.04
KB
-rw-r--r--
lsns
1.16
KB
-rw-r--r--
lsof
1.35
KB
-rw-r--r--
lsscsi
583
B
-rw-r--r--
lsusb
417
B
-rw-r--r--
lua
430
B
-rw-r--r--
luac
482
B
-rw-r--r--
luseradd
1011
B
-rw-r--r--
luserdel
475
B
-rw-r--r--
lusermod
1011
B
-rw-r--r--
lvchange
18.9
KB
-rw-r--r--
lvcreate
18.9
KB
-rw-r--r--
lvdisplay
18.9
KB
-rw-r--r--
lvextend
18.9
KB
-rw-r--r--
lvm
18.9
KB
-rw-r--r--
lvmdiskscan
18.9
KB
-rw-r--r--
lvreduce
18.9
KB
-rw-r--r--
lvremove
18.9
KB
-rw-r--r--
lvrename
18.9
KB
-rw-r--r--
lvresize
18.9
KB
-rw-r--r--
lvs
18.9
KB
-rw-r--r--
lvscan
18.9
KB
-rw-r--r--
lz4
1.15
KB
-rw-r--r--
lz4c
1.15
KB
-rw-r--r--
lzip
1.1
KB
-rw-r--r--
lzma
926
B
-rw-r--r--
lzop
1.45
KB
-rw-r--r--
macof
425
B
-rw-r--r--
mailmanctl
465
B
-rw-r--r--
mailsnarf
447
B
-rw-r--r--
make
6.02
KB
-rw-r--r--
makepkg
1.02
KB
-rw-r--r--
man
2.8
KB
-rw-r--r--
mc
668
B
-rw-r--r--
mcookie
599
B
-rw-r--r--
mcrypt
1.82
KB
-rw-r--r--
mdadm
4.41
KB
-rw-r--r--
mdecrypt
1.82
KB
-rw-r--r--
mdtool
2.06
KB
-rw-r--r--
medusa
676
B
-rw-r--r--
mencoder
11.02
KB
-rw-r--r--
mesg
412
B
-rw-r--r--
micropython
1.72
KB
-rw-r--r--
mii-diag
651
B
-rw-r--r--
mii-tool
849
B
-rw-r--r--
minicom
1.07
KB
-rw-r--r--
mkfs
638
B
-rw-r--r--
mkfs.bfs
656
B
-rw-r--r--
mkfs.cramfs
821
B
-rw-r--r--
mkfs.minix
714
B
-rw-r--r--
mkinitrd
1.19
KB
-rw-r--r--
mkisofs
861
B
-rw-r--r--
mkswap
841
B
-rw-r--r--
mktemp
670
B
-rw-r--r--
mmcli
5.41
KB
-rw-r--r--
mmsitepass
328
B
-rw-r--r--
modinfo
1.2
KB
-rw-r--r--
modprobe
3.97
KB
-rw-r--r--
mogrify
8.79
KB
-rw-r--r--
monodevelop
442
B
-rw-r--r--
montage
8.79
KB
-rw-r--r--
more
528
B
-rw-r--r--
mount
2.05
KB
-rw-r--r--
mountpoint
487
B
-rw-r--r--
mozilla-firefox
1.14
KB
-rw-r--r--
mplayer
11.02
KB
-rw-r--r--
mplayer2
11.02
KB
-rw-r--r--
mr
2.46
KB
-rw-r--r--
msgsnarf
447
B
-rw-r--r--
msynctool
1.31
KB
-rw-r--r--
mtr
1.88
KB
-rw-r--r--
mtx
1.15
KB
-rw-r--r--
munin-node-configure
752
B
-rw-r--r--
munin-run
643
B
-rw-r--r--
munin-update
652
B
-rw-r--r--
munindoc
318
B
-rw-r--r--
mussh
1.15
KB
-rw-r--r--
mutt
4.19
KB
-rw-r--r--
muttng
4.19
KB
-rw-r--r--
mypy
1.38
KB
-rw-r--r--
mysql
2.55
KB
-rw-r--r--
mysqladmin
1.69
KB
-rw-r--r--
namei
500
B
-rw-r--r--
nc
1.21
KB
-rw-r--r--
ncal
926
B
-rw-r--r--
ncftp
621
B
-rw-r--r--
nethogs
558
B
-rw-r--r--
netplan
988
B
-rw-r--r--
networkctl
2.08
KB
-rw-r--r--
newlist
571
B
-rw-r--r--
newusers
653
B
-rw-r--r--
ngrep
837
B
-rw-r--r--
nmap
1.81
KB
-rw-r--r--
npm
1.73
KB
-rw-r--r--
nproc
490
B
-rw-r--r--
nsenter
1.14
KB
-rw-r--r--
nslookup
1.96
KB
-rw-r--r--
nsupdate
898
B
-rw-r--r--
ntpdate
715
B
-rw-r--r--
oggdec
861
B
-rw-r--r--
op
1.41
KB
-rw-r--r--
openssl
11.18
KB
-rw-r--r--
opera
1.35
KB
-rw-r--r--
optipng
1.15
KB
-rw-r--r--
p4
1.44
KB
-rw-r--r--
pack200
2.16
KB
-rw-r--r--
partx
1.24
KB
-rw-r--r--
passwd
539
B
-rw-r--r--
patch
1.72
KB
-rw-r--r--
pbzip2
1.06
KB
-rw-r--r--
pccardctl
380
B
-rw-r--r--
pdftotext
920
B
-rw-r--r--
pdlzip
1.1
KB
-rw-r--r--
perl
4.19
KB
-rw-r--r--
perlcritic
1.35
KB
-rw-r--r--
perldoc
4.19
KB
-rw-r--r--
perltidy
1.25
KB
-rw-r--r--
pgrep
1.18
KB
-rw-r--r--
phing
2.71
KB
-rw-r--r--
pidof
520
B
-rw-r--r--
pigz
1.14
KB
-rw-r--r--
pine
873
B
-rw-r--r--
pinfo
1.88
KB
-rw-r--r--
ping
1.96
KB
-rw-r--r--
ping6
1.96
KB
-rw-r--r--
pivot_root
387
B
-rw-r--r--
pkcon
2.67
KB
-rw-r--r--
pkg-config
1.28
KB
-rw-r--r--
pkg-get
2.08
KB
-rw-r--r--
pkg_deinstall
460
B
-rw-r--r--
pkg_delete
460
B
-rw-r--r--
pkg_info
460
B
-rw-r--r--
pkgadd
1.7
KB
-rw-r--r--
pkgrm
1.04
KB
-rw-r--r--
pkgtool
846
B
-rw-r--r--
pkgutil
3.93
KB
-rw-r--r--
pkill
1.18
KB
-rw-r--r--
plague-client
413
B
-rw-r--r--
plzip
1.1
KB
-rw-r--r--
pm-hibernate
319
B
-rw-r--r--
pm-is-supported
334
B
-rw-r--r--
pm-powersave
280
B
-rw-r--r--
pm-suspend
319
B
-rw-r--r--
pm-suspend-hybrid
319
B
-rw-r--r--
pmake
6.02
KB
-rw-r--r--
pngfix
809
B
-rw-r--r--
portinstall
909
B
-rw-r--r--
portsnap
493
B
-rw-r--r--
portupgrade
477
B
-rw-r--r--
postalias
962
B
-rw-r--r--
postcat
880
B
-rw-r--r--
postconf
809
B
-rw-r--r--
postfix
813
B
-rw-r--r--
postmap
962
B
-rw-r--r--
postsuper
1.53
KB
-rw-r--r--
povray
1.93
KB
-rw-r--r--
ppc-koji
6.17
KB
-rw-r--r--
prelink
911
B
-rw-r--r--
prlimit
1.3
KB
-rw-r--r--
pro
1.94
KB
-rw-r--r--
protoc
1.49
KB
-rw-r--r--
psql
4.19
KB
-rw-r--r--
puppet
9.51
KB
-rw-r--r--
puppetca
9.51
KB
-rw-r--r--
puppetd
9.51
KB
-rw-r--r--
puppetdoc
9.51
KB
-rw-r--r--
puppetmasterd
9.51
KB
-rw-r--r--
puppetqd
9.51
KB
-rw-r--r--
puppetrun
9.51
KB
-rw-r--r--
pv
721
B
-rw-r--r--
pvchange
18.9
KB
-rw-r--r--
pvcreate
18.9
KB
-rw-r--r--
pvdisplay
18.9
KB
-rw-r--r--
pvmove
18.9
KB
-rw-r--r--
pvremove
18.9
KB
-rw-r--r--
pvs
18.9
KB
-rw-r--r--
pvscan
18.9
KB
-rw-r--r--
pwck
386
B
-rw-r--r--
pwd
445
B
-rw-r--r--
pwdx
481
B
-rw-r--r--
pwgen
592
B
-rw-r--r--
pxz
1.45
KB
-rw-r--r--
py.test
2.3
KB
-rw-r--r--
py.test-2
2.3
KB
-rw-r--r--
py.test-3
2.3
KB
-rw-r--r--
pycodestyle
726
B
-rw-r--r--
pydoc
1.01
KB
-rw-r--r--
pydoc3
1.01
KB
-rw-r--r--
pydocstyle
818
B
-rw-r--r--
pyflakes
441
B
-rw-r--r--
pylint
3.06
KB
-rw-r--r--
pylint-2
3.06
KB
-rw-r--r--
pylint-3
3.06
KB
-rw-r--r--
pypy
1.72
KB
-rw-r--r--
pypy3
1.72
KB
-rw-r--r--
pytest
2.3
KB
-rw-r--r--
pytest-2
2.3
KB
-rw-r--r--
pytest-3
2.3
KB
-rw-r--r--
python
1.72
KB
-rw-r--r--
python2
1.72
KB
-rw-r--r--
python3
1.72
KB
-rw-r--r--
pyvenv
428
B
-rw-r--r--
pyvenv-3.4
428
B
-rw-r--r--
pyvenv-3.5
428
B
-rw-r--r--
pyvenv-3.6
428
B
-rw-r--r--
pyvenv-3.7
428
B
-rw-r--r--
pyvenv-3.8
428
B
-rw-r--r--
qdbus
379
B
-rw-r--r--
qemu
3.24
KB
-rw-r--r--
qemu-kvm
3.24
KB
-rw-r--r--
qemu-system-i386
3.24
KB
-rw-r--r--
qemu-system-x86_64
3.24
KB
-rw-r--r--
qrunner
391
B
-rw-r--r--
querybts
1.22
KB
-rw-r--r--
quota
3.58
KB
-rw-r--r--
quotacheck
3.58
KB
-rw-r--r--
quotaoff
3.58
KB
-rw-r--r--
quotaon
3.58
KB
-rw-r--r--
radvdump
492
B
-rw-r--r--
ralsh
9.51
KB
-rw-r--r--
raw
482
B
-rw-r--r--
rcs
890
B
-rw-r--r--
rcsdiff
890
B
-rw-r--r--
rdesktop
1.63
KB
-rw-r--r--
rdict
1.76
KB
-rw-r--r--
readprofile
679
B
-rw-r--r--
remove_members
569
B
-rw-r--r--
removepkg
550
B
-rw-r--r--
renice
784
B
-rw-r--r--
reportbug
3.24
KB
-rw-r--r--
repquota
3.58
KB
-rw-r--r--
resizepart
568
B
-rw-r--r--
resolvconf
426
B
-rw-r--r--
resolvectl
5.56
KB
-rw-r--r--
rev
432
B
-rw-r--r--
rfcomm
9.45
KB
-rw-r--r--
ri
3.66
KB
-rw-r--r--
rlog
890
B
-rw-r--r--
rmlist
363
B
-rw-r--r--
rmmod
519
B
-rw-r--r--
route
790
B
-rw-r--r--
rpcdebug
981
B
-rw-r--r--
rpm
10.08
KB
-rw-r--r--
rpm2targz
368
B
-rw-r--r--
rpm2tgz
368
B
-rw-r--r--
rpm2txz
368
B
-rw-r--r--
rpmbuild
10.08
KB
-rw-r--r--
rpmbuild-md5
10.08
KB
-rw-r--r--
rpmcheck
512
B
-rw-r--r--
rrdtool
438
B
-rw-r--r--
rsync
3.44
KB
-rw-r--r--
rtcwake
1.06
KB
-rw-r--r--
s390-koji
6.17
KB
-rw-r--r--
sbcl
675
B
-rw-r--r--
sbcl-mt
675
B
-rw-r--r--
sbopkg
1.71
KB
-rw-r--r--
scp
15.54
KB
-rw-r--r--
screen
2.91
KB
-rw-r--r--
script
775
B
-rw-r--r--
scriptreplay
625
B
-rw-r--r--
scrub
868
B
-rw-r--r--
sdptool
9.45
KB
-rw-r--r--
setarch
790
B
-rw-r--r--
setpriv
2.77
KB
-rw-r--r--
setquota
3.58
KB
-rw-r--r--
setsid
440
B
-rw-r--r--
setterm
2.53
KB
-rw-r--r--
sfdisk
1.96
KB
-rw-r--r--
sftp
15.54
KB
-rw-r--r--
sh
885
B
-rw-r--r--
shellcheck
1.62
KB
-rw-r--r--
sidedoor
15.54
KB
-rw-r--r--
sitecopy
1.29
KB
-rw-r--r--
slackpkg
3.32
KB
-rw-r--r--
slapt-get
2.36
KB
-rw-r--r--
slapt-src
1.84
KB
-rw-r--r--
slogin
15.54
KB
-rw-r--r--
smartctl
4.18
KB
-rw-r--r--
smbcacls
6.92
KB
-rw-r--r--
smbclient
6.92
KB
-rw-r--r--
smbcquotas
6.92
KB
-rw-r--r--
smbget
6.92
KB
-rw-r--r--
smbpasswd
6.92
KB
-rw-r--r--
smbtar
6.92
KB
-rw-r--r--
smbtree
6.92
KB
-rw-r--r--
snap
2.48
KB
-rw-r--r--
snownews
363
B
-rw-r--r--
sparc-koji
6.17
KB
-rw-r--r--
spovray
1.93
KB
-rw-r--r--
sqlite3
882
B
-rw-r--r--
ss
1.09
KB
-rw-r--r--
ssh
15.54
KB
-rw-r--r--
ssh-add
677
B
-rw-r--r--
ssh-copy-id
684
B
-rw-r--r--
ssh-keygen
1.84
KB
-rw-r--r--
sshfs
594
B
-rw-r--r--
sshmitm
364
B
-rw-r--r--
sshow
498
B
-rw-r--r--
star
18.47
KB
-rw-r--r--
strace
3.26
KB
-rw-r--r--
stream
8.79
KB
-rw-r--r--
strings
1.12
KB
-rw-r--r--
su
892
B
-rw-r--r--
sudo
1.41
KB
-rw-r--r--
sudoedit
1.41
KB
-rw-r--r--
svcadm
4.95
KB
-rw-r--r--
svk
8.56
KB
-rw-r--r--
swaplabel
635
B
-rw-r--r--
swapoff
743
B
-rw-r--r--
swapon
1.96
KB
-rw-r--r--
sync_members
730
B
-rw-r--r--
synclient
588
B
-rw-r--r--
sysbench
3.96
KB
-rw-r--r--
sysctl
802
B
-rw-r--r--
systemctl
13.26
KB
-rw-r--r--
systemd-analyze
5.2
KB
-rw-r--r--
systemd-cat
1.66
KB
-rw-r--r--
systemd-cgls
2.04
KB
-rw-r--r--
systemd-cgtop
1.84
KB
-rw-r--r--
systemd-delta
1.7
KB
-rw-r--r--
systemd-detect-virt
1.28
KB
-rw-r--r--
systemd-path
1.68
KB
-rw-r--r--
systemd-resolve
2.63
KB
-rw-r--r--
systemd-run
5.23
KB
-rw-r--r--
tar
18.47
KB
-rw-r--r--
taskset
1.18
KB
-rw-r--r--
tc
26.49
KB
-rw-r--r--
tcpdump
1.62
KB
-rw-r--r--
tcpkill
440
B
-rw-r--r--
tcpnice
431
B
-rw-r--r--
tightvncviewer
2.94
KB
-rw-r--r--
timedatectl
2.86
KB
-rw-r--r--
timeout
993
B
-rw-r--r--
tipc
7.15
KB
-rw-r--r--
tox
1.33
KB
-rw-r--r--
tracepath
559
B
-rw-r--r--
tracepath6
559
B
-rw-r--r--
tshark
4.18
KB
-rw-r--r--
tune2fs
1.72
KB
-rw-r--r--
typeset
1.25
KB
-rw-r--r--
ua
1.94
KB
-rw-r--r--
udevadm
7.96
KB
-rw-r--r--
udisksctl
857
B
-rw-r--r--
ufw
2.44
KB
-rw-r--r--
ulimit
901
B
-rw-r--r--
umount
2.2
KB
-rw-r--r--
unace
476
B
-rw-r--r--
unpack200
1.22
KB
-rw-r--r--
unrar
619
B
-rw-r--r--
unshare
855
B
-rw-r--r--
unshunt
347
B
-rw-r--r--
update-alternatives
2.35
KB
-rw-r--r--
update-initramfs
581
B
-rw-r--r--
update-rc.d
1.92
KB
-rw-r--r--
upgradepkg
805
B
-rw-r--r--
urlsnarf
507
B
-rw-r--r--
useradd
1.22
KB
-rw-r--r--
userdel
543
B
-rw-r--r--
usermod
1.33
KB
-rw-r--r--
utmpdump
475
B
-rw-r--r--
uuidd
862
B
-rw-r--r--
uuidgen
657
B
-rw-r--r--
uuidparse
727
B
-rw-r--r--
valgrind
3.43
KB
-rw-r--r--
vgcfgbackup
18.9
KB
-rw-r--r--
vgcfgrestore
18.9
KB
-rw-r--r--
vgchange
18.9
KB
-rw-r--r--
vgck
18.9
KB
-rw-r--r--
vgconvert
18.9
KB
-rw-r--r--
vgcreate
18.9
KB
-rw-r--r--
vgdisplay
18.9
KB
-rw-r--r--
vgexport
18.9
KB
-rw-r--r--
vgextend
18.9
KB
-rw-r--r--
vgimport
18.9
KB
-rw-r--r--
vgmerge
18.9
KB
-rw-r--r--
vgmknodes
18.9
KB
-rw-r--r--
vgreduce
18.9
KB
-rw-r--r--
vgremove
18.9
KB
-rw-r--r--
vgrename
18.9
KB
-rw-r--r--
vgs
18.9
KB
-rw-r--r--
vgscan
18.9
KB
-rw-r--r--
vgsplit
18.9
KB
-rw-r--r--
vigr
438
B
-rw-r--r--
vipw
438
B
-rw-r--r--
vmstat
696
B
-rw-r--r--
vncviewer
2.94
KB
-rw-r--r--
vpnc
2.25
KB
-rw-r--r--
wall
634
B
-rw-r--r--
watch
1.15
KB
-rw-r--r--
wdctl
1.34
KB
-rw-r--r--
webmitm
364
B
-rw-r--r--
wget
6.34
KB
-rw-r--r--
whatis
2.8
KB
-rw-r--r--
whereis
535
B
-rw-r--r--
whiptail
345
B
-rw-r--r--
wine
536
B
-rw-r--r--
wine-development
536
B
-rw-r--r--
wine-stable
536
B
-rw-r--r--
wipefs
1.16
KB
-rw-r--r--
withlist
411
B
-rw-r--r--
wodim
3.49
KB
-rw-r--r--
wol
1.12
KB
-rw-r--r--
wsimport
1.09
KB
-rw-r--r--
wtf
926
B
-rw-r--r--
wvdial
1.24
KB
-rw-r--r--
xdg-mime
2.21
KB
-rw-r--r--
xdg-settings
761
B
-rw-r--r--
xfreerdp
2.07
KB
-rw-r--r--
xgamma
1.99
KB
-rw-r--r--
xhost
376
B
-rw-r--r--
xmllint
1.23
KB
-rw-r--r--
xmlwf
696
B
-rw-r--r--
xmms
687
B
-rw-r--r--
xmodmap
435
B
-rw-r--r--
xpovray
1.93
KB
-rw-r--r--
xrandr
2.13
KB
-rw-r--r--
xrdb
506
B
-rw-r--r--
xsltproc
1.19
KB
-rw-r--r--
xvfb-run
871
B
-rw-r--r--
xvnc4viewer
2.94
KB
-rw-r--r--
xxd
467
B
-rw-r--r--
xz
1.45
KB
-rw-r--r--
xzdec
630
B
-rw-r--r--
ypcat
759
B
-rw-r--r--
ypmatch
759
B
-rw-r--r--
yum-arch
357
B
-rw-r--r--
zopfli
676
B
-rw-r--r--
zopflipng
926
B
-rw-r--r--
zramctl
1.26
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : gtar
# bash completion for GNU tar -*- shell-script -*- # # General info # ============ # # The "old" style arguments # ------------------------- # # We don't "advice" the old tar option format by default for GNU tar, example: # # 'tar czfT /tmp/archive.tar patterns.txt' # # We rather advice the 'tar -czf /tmp/archive.tar -T patterns.txt' format of # arguments. Though, if user starts the 'first' tar argument without leading # dash, we treat the command line apropriately. # # # long/short options origin # ------------------------- # # For GNU tar, everything is parsed from `tar --help` output so not so much # per-distribution work should be needed. The _parse_help does not seem to be # good enough so parsed here directly. # # # FIXME: --starting-file (-K) (should be matched for extraction only) # FIXME: handle already used (at least short) options # FIXME: Test-cases for make check. # - check for no global variable pollution # FIXME: why PS4='$BASH_SOURCE:$LINENO: ' shows sometimes negative lines? # FIXME: timeout on tarball listing # FIXME: cache 'tar --help' parsing results into global variables # FIXME: at least 'tar -<tab>' should show some helping text (apart from just # pure option advices) # FIXME: short option completion should be more intuitive # - verbose mode option should be advised multiple times # - mode option should be advised only once # - format option should be advised only once # ... __gtar_parse_help_opt() { local opttype arg opt separator optvar opttype=long arg="$2" opt="$1" separator=" " case "$opt" in --*) ;; -\?) return ;; -*) opttype=short opt=${opt##-} separator= ;; *) echo "bash_completion: $FUNCNAME: unknown option $opt" >&2 return 1 ;; esac # Remove arguments. opt=${opt//\[*/} opt=${opt//=*/=} # Basic sanity. opt=${opt//\"*/} opt=${opt//\'*/} opt=${opt//\;*/} optvar=$opttype'_arg_'$arg eval "$optvar=\"\$$optvar$separator\"\"$opt\"" } __gtar_parse_help_line() { local i for i in $1; do case "$i" in # regular options --*|-*) __gtar_parse_help_opt "$i" "$2" ;; # end once there is single non-option word *) break esac done } __gnu_tar_parse_help() { local str line arg while IFS= read line; do # Ok, this requires some comment probably. The GNU help output prints # options on lines beginning with spaces. After that, there is one # or more options separated by ', ' separator string. We are matching # like this then: ^<spaces>(<separator>?<option>)+<whatever>$ if [[ "$line" =~ \ ^[[:blank:]]{1,10}(((,[[:blank:]])?(--?([\]\[a-zA-Z0-9?=-]+))(,[[:space:]])?)+).*$ ]]; then line=${BASH_REMATCH[1]} str="${line//,/ }" # Detect that all options on this line accept arguments (and whether # the arguments are required or not). Note that only long option # description in GNU help output mentions arguments. So the $line # variable may contain e.g. '-X, --XXX[=NAME], -XXX2[=NAME]'. arg=none if [[ "$line" =~ --[A-Za-z0-9-]+(\[?)= ]]; then [[ -n "${BASH_REMATCH[1]}" ]] && arg=opt || arg=req fi __gtar_parse_help_line "$str" "$arg" fi done <<<"$(tar --help)" long_opts="\ $long_arg_none\ $long_arg_opt\ $long_arg_req" short_opts="$short_arg_none$short_arg_opt$short_arg_req" } # Hack: parse --warning keywords from tar's error output __gtar_parse_warnings() { local line LC_ALL=C tar --warning= 2>&1 | while IFS= read line; do if [[ $line =~ ^[[:blank:]]*-[[:blank:]]*[\`\']([a-zA-Z0-9-]+)\'$ ]]; then echo "${BASH_REMATCH[1]} no-${BASH_REMATCH[1]}" fi done } # Helper to obtain last character of string. __tar_last_char() { echo "${1: $(( ${#1} - 1))}" } __tar_parse_old_opt() { local first_word char # current word is the first word [[ "$cword" -eq 1 && -n "$cur" && "${cur:0:1}" != '-' ]] \ && old_opt_progress=1 # check that first argument does not begin with "-" first_word=${words[1]} [[ -n "$first_word" && "${first_word:0:1}" != "-" ]] \ && old_opt_used=1 # parse the old option (if present) contents to allow later code expect # corresponding arguments if [[ $old_opt_used -eq 1 ]]; then char=${first_word:0:1} while [[ -n "$char" ]]; do if __tar_is_argreq "$char"; then old_opt_parsed+=("$char") fi first_word=${first_word##$char} char=${first_word:0:1} done fi } # Make the analysis of whole command line. __tar_preparse_cmdline() { local first_arg my_args tmparg i modes="ctxurdA" shift # progname __tar_parse_old_opt first_arg=1 for i in "$@"; do case "$i" in --delete|--test-label) tar_mode=${i:2:100} tar_mode_arg=$i break ;; --*) # skip ;; -*[$modes]*) tar_mode=${i//[^$modes]/} tar_mode=${tar_mode:0:1} tar_mode_arg=$i break ;; *[$modes]*) # Only the first arg may be "MODE" without leading dash if [[ $first_arg -eq 1 ]]; then tar_mode=${i//[^$modes]/} tar_mode=${tar_mode:0:1} tar_mode_arg=$i fi ;; esac first_arg=0 done } # Generate completions for -f/--file. __tar_file_option() { local ext="$1" case "$tar_mode" in c) # no need to advise user to re-write existing tarball _filedir -d ;; *) _filedir "$ext" ;; esac } # Returns truth if option requires argument. No equal sign must be pasted. # Accepts option in format: 'c', '-c', '--create' __tar_is_argreq() { local opt opt=$1 case "$opt" in -[A-Za-z0-9?]) [[ "$short_arg_req" =~ ${opt##-} ]] && return 0 ;; [A-Za-z0-9?]) [[ "$short_arg_req" =~ ${opt} ]] && return 0 ;; --*) [[ "$long_arg_req" =~ [[:blank:]]$opt=[[:blank:]] ]] && return 0 ;; esac return 1 } # Called only for short parameter __tar_complete_mode() { local short_modes has_mode rawopt generated \ allshort_raw_unused allshort_raw \ filler i short_modes="ctx" [[ -z "$basic_tar" ]] && short_modes="ctxurdA" # Remove prefix when needed rawopt=${cur#-} # -c -z -x ... => czx allshort_raw=${short_opts//[- ]/} # init the 'mode' option if no option is in ${cur} if [[ "$tar_mode" == none ]]; then # when user passed something like 'tar cf' do not put the '-' before filler= if [[ -z "$cur" && -z "$basic_tar" ]]; then filler=- fi generated="" for (( i=0 ; 1; i++ )); do local c="${short_modes:$i:1}" [[ -z "$c" ]] && break generated+=" $filler$cur$c" done COMPREPLY=( $(compgen -W "$generated" ) ) return 0 fi # The last short option requires argument, like '-cf<TAB>'. Cut the # completion here to enforce argument processing. if [[ "$old_opt_progress" -eq 0 ]] \ && __tar_is_argreq "$(__tar_last_char "$cur")"; then COMPREPLY=( "$cur" ) && return 0 fi allshort_raw_unused=${allshort_raw//[$rawopt]/} if [[ "$tar_mode" != none ]]; then allshort_raw_unused=${allshort_raw_unused//[$short_modes]} fi generated= for (( i=0 ; 1; i++ )); do local c="${allshort_raw_unused:$i:1}" [[ -z "$c" ]] && break generated+=" $cur$c" done COMPREPLY=( $(compgen -W "$generated") ) return 0 } __gtar_complete_lopts() { local rv COMPREPLY=( $(compgen -W "$long_opts" -- "$cur") ) rv=$? [[ $COMPREPLY == *= ]] && compopt -o nospace return $rv } __gtar_complete_sopts() { local generated short_mode_opts i c short_mode_opts="ctxurdA" generated=${short_opts//[$short_mode_opts]/} for (( i=0 ; 1; i++ )); do c="${allshort_raw_unused:$i:1}" [[ -z "$c" ]] && break generated+=" $cur$c" done COMPREPLY=( $(compgen -W "$generated" -- "$cur") ) } __tar_try_mode() { case "$cur" in --*) # posix tar does not support long opts [[ -n "$basic_tar" ]] && return 0 __gtar_complete_lopts return $? ;; -*) # posix tar does not support short optios [[ -n "$basic_tar" ]] && return 0 __tar_complete_mode && return 0 ;; *) if [[ "$cword" -eq 1 || "$tar_mode" == none ]]; then __tar_complete_mode && return 0 fi ;; esac return 1 } __tar_adjust_PREV_from_old_option() { # deal with old style arguments here # $ tar cfTC # expects this sequence of arguments: # $ tar cfTC ARCHIVE_FILE PATTERNS_FILE CHANGE_DIR if [[ "$old_opt_used" -eq 1 && "$cword" -gt 1 \ && "$cword" -lt $(( ${#old_opt_parsed[@]} + 2 )) ]]; then # make e.g. 'C' option from 'cffCT' prev="-${old_opt_parsed[ $cword - 2 ]}" fi } __tar_extract_like_mode() { local i for i in x d t delete; do [[ "$tar_mode" == "$i" ]] && return 0 done return 1 } __tar_try_list_archive() { local tarball tarbin untar i __tar_extract_like_mode || return 1 # This all is just to approach directory completion from "virtual" # directory structure in tarball (for which the _filedir is unusable) set -- "${words[@]}" tarbin=$1 untar="tf" shift for i in "$@"; do if [[ $i == *.$ext ]]; then tarball=$i break fi done if [[ -n "$tarball" ]]; then local IFS=$'\n' COMPREPLY=($(compgen -o filenames -W "$( $tarbin $untar "$tarball" 2>/dev/null | while read line; do printf "%q\n" "$(printf %q"\n" "$line")" done )" -- "$(printf "%q\n" "$cur")")) return 0 fi } __tar_cleanup_prev() { if [[ "$prev" =~ ^-[a-zA-Z0-9?]*$ ]]; then # transform '-caf' ~> '-f' prev="-$(__tar_last_char "$prev")" fi } __tar_detect_ext() { local tars='@(@(tar|gem|spkg)?(.@(Z|[bgx]z|bz2|lz?(ma|o)|zst))|t@([abglx]z|b?(z)2|zst))' ext="$tars" case "$tar_mode_arg" in --*) # Should never happen? ;; ?(-)*[cr]*f) ext='@(tar|gem|spkg)' case ${words[1]} in *a*) ext="$tars" ;; *z*) ext='t?(ar.)gz' ;; *Z*) ext='ta@(r.Z|z)' ;; *[jy]*) ext='t@(?(ar.)bz?(2)|b2)' ;; *J*) ext='t?(ar.)xz' ;; esac ;; +([^ZzJjy])f) # Pass through using defaults above ;; *[Zz]*f) ext='@(@(t?(ar.)|gem.|spkg.)@(gz|Z)|taz)' ;; *[jy]*f) ext='@(@(t?(ar.)|gem.)bz?(2)|spkg|tb2)' ;; *[J]*f) ext='@(@(tar|gem|spkg).@(lzma|xz)|t[lx]z)' ;; esac } _gtar() { local long_opts short_opts \ long_arg_none long_arg_opt long_arg_req \ short_arg_none short_arg_opt short_arg_req \ tar_mode tar_mode_arg old_opt_progress=0 \ old_opt_used=0 old_opt_parsed=() # Main mode, e.g. -x or -c (extract/creation) local tar_mode=none # The mode argument, e.g. -cpf or -c # FIXME: handle long options local tar_mode_arg= if [[ "$_TAR_OPT_DEBUG" == 1 ]]; then set -x PS4="\$BASH_SOURCE:\$LINENO: " fi local cur prev words cword split _init_completion -s || return # Fill the {long,short}_{opts,arg*} __gnu_tar_parse_help __tar_preparse_cmdline "${words[@]}" local ext tar untar __tar_detect_ext while true; do # just-for-easy-break while, not looping __tar_adjust_PREV_from_old_option __tar_posix_prev_handle && break __tar_cleanup_prev # Handle all options *REQUIRING* argument. Optional arguments are up to # user (TODO: is there any sane way to deal with this?). This case # statement successes only if there already is PREV. case $prev in --directory|-!(-*)C) _filedir -d break ;; --atime-preserve) COMPREPLY=( $(compgen -W 'replace system' -- "$cur") ) break ;; --group) COMPREPLY=( $(compgen -g -- "$cur") ) break ;; --owner) COMPREPLY=( $(compgen -u -- "$cur") ) break ;; --info-script|--new-volume-script|--rmt-command|--rsh-command|\ --use-compress-program|-!(-*)[FI]) compopt -o filenames COMPREPLY=( $(compgen -c -- "$cur") ) break ;; --volno-file|--add-file|--files-from|--exclude-from|\ --index-file|--listed-incremental|-!(-*)[TXg]) _filedir break ;; --format|-!(-*)H) COMPREPLY=( $(compgen -W 'gnu oldgnu pax posix ustar v7' \ -- "$cur") ) break ;; --quoting-style) COMPREPLY=( $(compgen -W 'literal shell shell-always c c-maybe escape locale clocale' -- "$cur") ) break ;; --totals) COMPREPLY=( $(compgen -W 'SIGHUP SIGQUIT SIGINT SIGUSR1 SIGUSR2' \ -- "$cur") ) break ;; --warning) COMPREPLY=( $(compgen -W "$(__gtar_parse_warnings)" -- "$cur") ) break ;; --file|-!(-*)f) __tar_file_option "$ext" break ;; --*) # parameter with required argument but no completion yet [[ " $long_arg_req " =~ \ $prev=\ ]] && break # parameter with optional argument passed with =, something like # --occurrence=*<TAB> which is not handled above [[ " $long_arg_opt " =~ \ $prev\ ]] && break # if there is some unknown option with '=', for example # (literally) user does --nonexistent=<TAB>, we do not want # continue also $split && break # Most probably, when code goes here, the PREV variable contains # some string from "$long_arg_none" and we want continue. ;; -!(-*)[a-zA-Z0-9?]) # argument required but no completion yet [[ "$short_arg_req" =~ ${prev##-} ]] && break ;; esac # safety belts case "$cur" in -[a-zA-Z0-9]=*) # e.g. 'tar -c -f=sth' does not what user could expect break ;; esac # Handle the main operational mode of tar. We should do it as soon as # possible. __tar_try_mode && break # handle others case "$cur" in --*) __gtar_complete_lopts break ;; -*) # called only if it is *not* first parameter __gtar_complete_sopts break ;; esac # the first argument must be "mode" argument or --param, if any of those # was truth - the 'break' statement would have been already called [[ "$cword" -eq 1 ]] && break __tar_try_list_archive && break # file completion on relevant files if [[ $tar_mode != none ]]; then _filedir fi break done # just-for-easy-break while if [[ "$_TAR_OPT_DEBUG" == 1 ]]; then set +x unset PS4 fi } __tar_posix_prev_handle() { case "$prev" in -f) __tar_file_option "$ext" return 0 ;; -b) return 0 esac return 1 } _posix_tar() { local long_opts short_opts basic_tar \ long_arg_none long_arg_opt long_arg_req \ short_arg_none short_arg_opt short_arg_req \ tar_mode tar_mode_arg old_opt_progress=0 \ old_opt_used=1 old_opt_parsed=() # Main mode, e.g. -x or -c (extract/creation) local tar_mode=none # The mode argument, e.g. -cpf or -c local tar_mode_arg= local cur prev words cword split _init_completion -s || return basic_tar=yes tar_mode=none # relatively compatible modes are {c,t,x} # relatively compatible options {b,f,m,v,w} short_arg_req="fb" short_arg_none="wmv" short_opts="$short_arg_req$short_arg_none" __tar_preparse_cmdline "${words[@]}" local ext tar untar __tar_detect_ext __tar_adjust_PREV_from_old_option __tar_posix_prev_handle && return __tar_try_mode && return __tar_try_list_archive && return # file completion on relevant files _filedir } _tar() { local cmd=${COMP_WORDS[0]} func line line="$($cmd --version 2>/dev/null)" case "$line" in *GNU*) func=_gtar ;; *) func=_posix_tar ;; esac $func "$@" # Install real completion for subsequent completions if [ -n "${COMP_TAR_INTERNAL_PATHS:-}" ]; then complete -F $func -o dirnames tar else complete -F $func tar fi unset -f _tar } if [ -n "${COMP_TAR_INTERNAL_PATHS:-}" ]; then complete -F _tar -o dirnames tar complete -F _gtar -o dirnames gtar complete -F _posix_tar -o dirnames bsdtar complete -F _posix_tar -o dirnames star else complete -F _tar tar complete -F _gtar gtar complete -F _posix_tar bsdtar complete -F _posix_tar star fi # ex: filetype=sh
Close