#Completions for rm if rm --version >/dev/null 2>/dev/null # GNU complete -c rm -s d -l directory -d "Unlink directories" complete -c rm -s f -l force -d "Never prompt for removal" complete -c rm -s i -l interactive -d "Prompt for removal" complete -c rm -s I -d "Prompt to remove >3 files" complete -c rm -s r -l recursive -d "Recursively remove subdirs" complete -c rm -s R -d "Recursively remove subdirs" complete -c rm -s v -l verbose -d "Explain what is done" complete -c rm -s h -l help -d "Display help" complete -c rm -l version -d "Display rm version" else set -l uname (uname -s) # solaris: rm [-fi ] file ... # openbsd: rm [-fidPRrv ] file ... # macos: rm [-fidPRrvW ] file ... # netbsd: rm [-fidPRrvWx ] file ... # freebsd: rm [-fidPRrvWxI] file ... # dragonfly: rm [-fidPRrvWxI] file ... complete -c rm -s f -d "Never prompt for removal" complete -c rm -s i -d "Prompt for removal" test "$uname" = SunOS and exit 0 complete -c rm -s d -d "Remove directories as well" complete -c rm -s P -d "Overwrite before removal" complete -c rm -s R -s r -d "Recursively remove subdirs" complete -c rm -s v -d "Explain what is done" test "$uname" = OpenBSD and exit 0 complete -c rm -s W -d "Undelete given filenames" test "$uname" = Darwin and exit 0 complete -c rm -s x -d "Don't traverse mount points" test "$uname" = NetBSD and exit 0 complete -c rm -s I -d "Prompt to remove >=3 files" end