#compdef shred gshred _arguments -s -S : \ '(: * -)--help[display help information]' \ '(: * -)--version[display version information]' \ '(-f --force)'{-f,--force}'[bypass lack of write permissions]' \ '(-n --iterations)'{-n+,--iterations=}'[specify number of overwrites]:overwrites [3]' \ '--random-source=[get random bytes from specified file]:random source file:_files' \ '(-s --size)'{-s+,--size=}'[shred specified number of bytes]:bytes' \ '(--remove)-u[deallocate and remove file after overwriting]' \ '(-u)--remove=-[like -u, or specify how to remove]::how to remove [wipesync]:(( unlink\:"use standard unlink call" wipe\:"like unlink, but obfuscate bytes in name first" wipesync\:"like wipe, but sync each obfuscated byte to disk" ))' \ '(-v --verbose)'{-v,--verbose}'[display progress]' \ '(-x --exact)'{-x,--exact}'[do not round file sizes up to nearest block]' \ '(-z --zero)'{-z,--zero}'[add final overwrite with zeros]' \ '*: :_files'