about summary refs log tree commit diff
path: root/Completion/User/_find
blob: dd00b0ed1423c292a9bb03b743e07f25f7af9a3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#compdef find

local prev="$words[CURRENT-1]"

if compset -N '-(ok|exec)' '\;'; then
  _normal
elif compset -P 1 -; then
  compgen -s 'daystart {max,min,}depth follow noleaf version xdev \
    {a,c,}newer {a,c,m}{min,time} empty false {fs,x,}type gid inum links \
    {i,}{l,}name {no,}{user,group} path perm regex size true uid used \
    exec {f,}print{f,0,} ok prune ls'
elif [[ CURRENT -eq 2 ]]; then
  local ret=1

  compgen -g '. ..' && ret=0
  _files -g '*(-/)' && ret=0

  return ret
elif [[ "$prev" = -((a|c|)newer|fprint(|0|f)) ]]; then
  _files
elif [[ "$prev" = -fstype ]]; then
  compgen -k '(ufs 4.2 4.3 nfs tmp mfs S51K S52K)'
elif [[ "$prev" = -group ]]; then
  compgen -k groups
elif [[ "$prev" = -user ]]; then
  compgen -u
fi