Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 3.142.172.250
# mount(8) completion -*- shell-script -*-
# Use of this file is deprecated on Linux. Upstream completion is
# available in util-linux >= 2.28, use that instead.
_mount()
{
local cur prev words cword
_init_completion -n =: || return
local split=false
case "$prev" in
-t | --types)
# find /lib/modules/$(uname -r)/ -type f -path '*/fs/*.ko' -printf '%f\n' | cut -d. -f1
# FIXME: no<fstype>
if [[ $cur == ?*,* ]]; then
prev="${cur%,*}"
cur="${cur##*,}"
split=true
fi
COMPREPLY=($(compgen -W 'auto adfs affs autofs btrfs cifs coda
cramfs davfs debugfs devpts efs ext2 ext3 ext4 fuse hfs hfsplus
hpfs iso9660 jffs2 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g
proc qnx4 ramfs reiserfs romfs squashfs smbfs sysv tmpfs ubifs
udf ufs umsdos usbfs vfat xfs' -- "$cur"))
_fstypes
$split && COMPREPLY=(${COMPREPLY[@]/#/$prev,})
return
;;
--bind | -B | --rbind | -R)
_filedir -d
return
;;
-p | --pass-fd)
COMPREPLY=($(compgen -W '{0..9}'))
compopt -o nospace
return
;;
-L)
COMPREPLY=($(
cd "/dev/disk/by-label/" 2>/dev/null || return
compgen -f -- "$cur"
))
return
;;
-U)
COMPREPLY=($(
cd "/dev/disk/by-uuid/" 2>/dev/null || return
compgen -f -- "$cur"
))
return
;;
-O | --test-opts)
# argument required but no completions available
return
;;
-o | --options)
local fstype=auto # default fstype
for ((i = ${#words[@]} - 1; i > 0; i--)); do
if [[ ${words[i]} == -@(t|-types)* ]]; then
if [[ ${words[i]} == *=* ]]; then
[[ ${words[i]} == ?*,* ]] && break
fstype="${words[i]#-*=}"
else
[[ ${words[i + 1]} == ?*,* ]] && break
fstype="${words[i + 1]}"
fi
break
fi
done
# no<fstype> is not a real fstype, reset to "auto"
[[ $fstype == no?* ]] && fstype=auto
# split options list
if [[ $cur == ?*,* ]]; then
prev="${cur%,*}"
cur="${cur##*,}"
split=true
fi
# no completion if $cur is opt=smth
[[ $cur == *=* ]] && return
# mount options
COMPREPLY=($(compgen -W 'loop {,a}sync {,no}atime {,no}auto
{,fs,def,root}context= defaults {,no}dev {,no}diratime dirsync
{,no}exec group {,no}iversion {,no}mand _netdev nofail
{,no}relatime {,no}strictatime {,no}suid owner remount ro rw
{,no}user users' -- "$cur"))
case "$fstype" in
adfs | auto)
COMPREPLY+=($(compgen -W '{u,g}id= {own,oth}mask=' -- "$cur"))
;;&
affs | auto)
COMPREPLY+=($(compgen -W '{u,g}id= set{u,g}id= mode= protect
usemp verbose prefix= volume= reserved= root= bs=
{,no,usr,grp}quota' -- "$cur"))
;;&
btrfs | auto)
COMPREPLY+=($(compgen -W 'degraded subvol= subvolid= device=
nodatasum nodatacow nobarrier max_inline= alloc_start=
thread_pool= compress= compress-force= ssd noacl notreelog
flushoncommit metadata_ratio= {,no}space_cache clear_cache
user_subvol_rm_allowed autodefrag inode_cache' -- "$cur"))
;;&
cifs | auto)
COMPREPLY+=($(compgen -W 'user= password= credentials= {u,g}id=
force{u,g}id port= servern= netbiosname= {file,dir}_mode=
ip= domain= guest iocharset {,no}setuids {,no,dyn}perm
directio {,no}mapchars {,no}intr hard soft noacl nocase sec=
nobrl sfu {,no}serverino nounix nouser_xattr {r,w}size=
rwpidforward backup{u,g}id cache=' -- "$cur"))
;;&
davfs | auto)
COMPREPLY+=($(compgen -W 'conf= {file,dir}_mode= {u,g}id=
username=' -- "$cur"))
;;&
ext[2-4] | auto)
COMPREPLY+=($(compgen -W '{,no}acl bsddf minixdf check= debug
errors= {,no}grpid {bsd,sysv}groups {,no,usr,grp}quota
nobh nouid32 oldalloc orlov res{u,g}id= sb=
{,no}user_xattr' -- "$cur"))
;;&
ext[34] | auto)
COMPREPLY+=($(compgen -W 'journal= journal_dev= norecovery
noload data= barrier= commit=' -- "$cur"))
;;&
ext4 | auto)
COMPREPLY+=($(compgen -W 'journal_checksum journal_async_commit
nobarrier inode_readahead= stripe= {,no}delalloc abort
{max,min}_batch_time= journal_ioprio= {,no}auto_da_alloc
{,no}discard nouid32 resize {,no}block_validity
dioread_{,no}lock max_dir_size_kb= i_version' -- "$cur"))
;;&
msdos | umsdos | vfat | auto)
COMPREPLY+=($(compgen -W 'blocksize= {u,g}id= {u,d,f}mask=
allow_utime= check= codepage= conv= cvf_format= cvf_option=
debug fat= iocharset= tz= quiet showexec sys_immutable flush
usefree {,no}dots dotsOK=' -- "$cur"))
;;&
vfat | auto)
COMPREPLY+=($(compgen -W 'uni_xlate posix nonumtail utf8
shortname=' -- "$cur"))
;;&
iso9660 | auto)
COMPREPLY+=($(compgen -W 'norock nojoliet check= {u,g}id= map=
mode= unhide block= conv= cruft session= sbsector=
iocharset= utf8' -- "$cur"))
;;&
jffs2 | auto)
COMPREPLY+=($(compgen -W 'compr= rp_size=' -- "$cur"))
;;&
jfs | auto)
COMPREPLY+=($(compgen -W 'iocharset= resize= {,no}integrity
errors= {,no,usr,grp}quota' -- "$cur"))
;;&
nfs | nfs4 | auto)
COMPREPLY+=($(compgen -W 'soft hard timeo= retrans= {r,w}size=
{,no}ac acreg{min,max}= acdir{min,max}= actimeo= bg fg
retry= sec= {,no}sharecache {,no}resvport lookupcache=
proto= port= {,no}intr {,no}cto {,nfs}vers= ' -- "$cur"))
;;&
nfs | auto)
COMPREPLY+=($(compgen -W 'udp tcp rdma mount{port,proto,host}=
mountvers= namlen={,no}lock {,no}acl {,no}rdirplus
{,no}fsc' -- "$cur"))
;;&
nfs4 | auto)
COMPREPLY+=($(compgen -W 'clientaddr= {,no}migration' \
-- "$cur"))
;;&
ntfs-3g)
COMPREPLY+=($(compgen -W '{u,g}id= {u,f,d}mask= usermapping=
permissions inherit locale= force {,no}recover
ignore_case remove_hiberfile show_sys_files
hide_{hid,dot}_files windows_names allow_other max_read=
silent no_def_opts streams_interface= user_xattr efs_raw
{,no}compression debug no_detach' -- "$cur"))
;;&
proc | auto)
COMPREPLY+=($(compgen -W '{u,g}id=' -- "$cur"))
;;&
reiserfs | auto)
COMPREPLY+=($(compgen -W 'conv hash= {,no_un}hashed_relocation
noborder nolog notail replayonly resize= user_xattr acl
barrier=' -- "$cur"))
;;&
tmpfs | auto)
COMPREPLY+=($(compgen -W 'size= nr_blocks= nr_inodes= mode=
{u,g}id= mpol=' -- "$cur"))
;;&
udf | auto)
COMPREPLY+=($(compgen -W '{u,g}id= umask= unhide undelete
nostrict iocharset bs= novrs session= anchor= volume=
partition= lastblock= fileset= rootdir=' -- "$cur"))
;;&
usbfs | auto)
COMPREPLY+=($(compgen -W 'dev{u,g}id= devmode= bus{u,g}id=
busmode= list{u,g}id= listmode=' -- "$cur"))
;;&
xfs | auto)
COMPREPLY+=($(compgen -W 'allocsize= {,no}attr2 barrier dmapi
{,no}grpid {bsd,sysv}groups ihashsize= {,no}ikeep
inode{32,64} {,no}largeio logbufs= logbsize= logdev=
rtdev= mtpt= noalign norecovery nouuid osyncisosync
{u,g,p}qnoenforce {,u,usr,g,grp,p,prj}quota sunit= swidth=
swalloc' -- "$cur"))
;;&
esac
# COMP_WORDBREAKS is a real pain in the ass
prev="${prev##*[$COMP_WORDBREAKS]}"
$split && COMPREPLY=(${COMPREPLY[@]/#/"$prev,"})
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
return
;;
esac
if [[ $cur == -* ]]; then
COMPREPLY=($(compgen -W '--version --help --verbose --all --fork
--fake --internal-only -l --no-mtab --no-canonicalize --pass-fd -s
--read-only --rw -L -U --types --test-opts --options --bind --rbind
--move' -- "$cur"))
[[ ${COMPREPLY-} ]] && return
fi
[[ $cur == \\ ]] && cur="/"
local sm host
if [[ $cur == *:* ]]; then
for sm in "$(type -P showmount)" {,/usr}/{,s}bin/showmount; do
[[ -x $sm ]] || continue
COMPREPLY=($(compgen -W "$("$sm" -e ${cur%%:*} |
awk 'NR>1 {print $1}')" -- "${cur#*:}"))
return
done
fi
if [[ $cur == //* ]]; then
host=${cur#//}
host=${host%%/*}
if [[ -n $host ]]; then
COMPREPLY=($(compgen -P "//$host" -W \
"$(smbclient -d 0 -NL $host 2>/dev/null |
command sed -ne '/^[[:blank:]]*Sharename/,/^$/p' |
command sed -ne '3,$s|^[^A-Za-z]*\([^[:blank:]]*\).*$|/\1|p')" \
-- "${cur#//$host}"))
fi
fi
_filedir
} &&
complete -F _mount mount
# ex: filetype=sh
|