1if cp --version 2>/dev/null >/dev/null # GNU cp 2 complete -c cp -s a -l archive -d "Same as -dpR" 3 complete -c cp -s b -l backup -d "Make backup of each existing destination file" -a "none off numbered t existing nil simple never" 4 complete -c cp -l copy-contents -d "Copy contents of special files when recursive" 5 complete -c cp -s d -d "Same as --no-dereference --preserve=link" 6 complete -c cp -s f -l force -d "Do not prompt before overwriting" 7 complete -c cp -s i -l interactive -d "Prompt before overwrite" 8 complete -c cp -s H -d "Follow command-line symbolic links" 9 complete -c cp -s l -l link -d "Link files instead of copying" 10 complete -c cp -l strip-trailing-slashes -d "Remove trailing slashes from source" 11 complete -c cp -s S -l suffix -r -d "Backup suffix" 12 complete -c cp -s t -l target-directory -d "Target directory" -x -a "(__fish_complete_directories (commandline -ct) 'Target directory')" 13 complete -c cp -s u -l update -d "Do not overwrite newer files" 14 complete -c cp -s v -l verbose -d "Verbose mode" 15 complete -c cp -l help -d "Display help and exit" 16 complete -c cp -l version -d "Display version and exit" 17 complete -c cp -s L -l dereference -d "Always follow symbolic links" 18 complete -c cp -s P -l no-dereference -d "Never follow symbolic links" 19 complete -c cp -s p -d "Same as --preserve=mode,ownership,timestamps" 20 complete -c cp -f -l preserve -d "Preserve ATTRIBUTES if possible" -xa "mode ownership timestamps links all" 21 complete -c cp -f -l no-preserve -r -d "Don't preserve ATTRIBUTES" -xa "mode ownership timestamps links all" 22 complete -c cp -l parents -d "Use full source file name under DIRECTORY" 23 complete -c cp -s r -s R -l recursive -d "Copy directories recursively" 24 complete -c cp -l remove-destination -d "First remove existing destination files" 25 complete -c cp -f -l sparse -r -d "Control creation of sparse files" -xa "always auto never" 26 complete -c cp -s s -l symbolic-link -d "Make symbolic links instead of copying" 27 complete -c cp -s T -l no-target-directory -d "Treat DEST as a normal file" 28 complete -c cp -s x -l one-file-system -d "Stay on this file system" 29 complete -c cp -s X -l context -r -d "Set SELinux context of copy to CONTEXT" 30else # BSD/macOS 31 set -l uname (uname -s) 32 # Solaris: cp [-R | r [H | L | P ]] [-fi ] [-p ] 33 # openbsd: cp [-R | [H | L | P ]] [-fi ] [-pv ] 34 # macos: cp [-R | [H | L | P ]] [-fin] [-pva cX ] # -c: clone -X: copy xattrs 35 # netbsd: cp [-R | [H | L | P ]] [-fi ] [-pval N] # -l: hard link instead of copy -N: don't copy file flags 36 # dragonfly: cp [-R | [H | L | P ]] [-fin] [-pvalx ] # -x: don't traverse mount points 37 # freebsd: cp [-R | [H | L | P ]] [-fin] [-pvalxs ] # -s: symlink instead of copy 38 if [ "$uname" = SunOS ] # annoying 39 complete -c cp -s r -d "Copy directories recursively" 40 complete -c cp -s R -d "Like -r, but replicating pipes instead of reading pipes" 41 else 42 complete -c cp -s R -d "Copy directories recursively" 43 end 44 complete -c cp -s H -d "-R: Follow symlink arguments" 45 complete -c cp -s L -d "-R: Follow all symlinks" 46 complete -c cp -s P -d "-R: Don't follow symlinks (default)" 47 48 complete -c cp -s f -d "Don't confirm to overwrite" 49 complete -c cp -s i -d "Prompt before overwrite" 50 not contains "$uname" SunOS OpenBSD NetBSD 51 and complete -c cp -s n -d "Don't overwrite existing" 52 53 complete -c cp -s p -d "Preserve attributes of source" 54 if [ "$uname" = SunOS ] 55 exit 0 56 end 57 complete -c cp -s v -d "Print filenames as they're copied" 58 if [ "$uname" = OpenBSD ] 59 exit 0 60 end 61 complete -c cp -s a -d "Archive mode (-pPR)" 62 if [ "$uname" = Darwin ] 63 complete -c cp -s c -d "Clone using clonefile(2)" 64 complete -c cp -s X -d "Omit xattrs, resource forks" 65 exit 0 66 end 67 complete -c cp -s l -d "Hard link instead of copying" 68 if [ "$uname" = NetBSD ] 69 complete -c cp -s N -d "Don't copy file flags" 70 exit 0 71 end 72 complete -c cp -s x -d "Don't traverse mount points" 73 if [ "$uname" = FreeBSD ] 74 complete -c cp -s s -d "Symlink instead of copying" 75 end 76end 77