#compdef chcon local ign (( $#words > 2 )) && ign='!' _arguments -C -s -S \ '(-h --no-dereference)--dereference[dereference symlinks]' \ '(-h --no-dereference --dereference)'{-h,--no-dereference}'[operate on symlinks themselves]' \ '(1 -u --user -r --role -l --range -t --type)--reference=[copy security context of specified file]:file:_files' \ '(1 --reference -u --user)'{-u+,--user=}'[set user in the target security context]: :_selinux_users' \ '(1 --reference -r --role)'{-r+,--role=}'[set role in the target security context]: :_selinux_roles' \ '(1 --reference -t --type)'{-t+,--type=}'[set type in the target security context]: :_selinux_types' \ '(1 --reference -l --range)'{-l+,--range=}'[set range in the target security context]:selinux range' \ '(--recursive -R)'{--recursive,-R}'[recurse subdirectories]' \ '(-v --verbose)'{-v,--verbose}'[output a diagnostic for every file processed]' \ '(-H -L -P)-H[follow symlinks on the command line]' \ '(-H -L -P)-L[follow all symlinks]' \ "(-H -L -P)-P[don't follow symlinks (default)]" \ '!(--preserve-root)--no-preserve-root' \ "--preserve-root[fail to operate recursively on '/']" \ '(--reference -u --user -r --role -l --range -t --type)1:security context:_selinux_contexts' \ "${ign}--help[display help information]" \ "${ign}--version[display version information]" \ '*:file:_files'