linux version BSD down there

cp - copy files and directories

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
-d ‑‑no-dereference ‑‑preserve=link
-a,
‑‑archive
don't follow symbolic links
‑‑preserve=link
recursively
preserve mode,ownership,timestamps
-i,
‑‑interactive
prompt before overwrite
-u,
‑‑update
copy only when the SOURCE file is newer or the destination file doesn't exist
-f,
‑‑force
if an existing destination file cannot be opened, remove it and try again
‑‑remove‑destination remove destination file before opening it (contrast with ‑‑force)
‑‑backup[=control] make a backup of each existing destination file
-S,
‑‑suffix=suffix
backup suffix, default is ~
-b backup
-H follow command-line symbolic links
-s,
‑‑symbolic-link
make symbolic links instead of copying
-l,
‑‑link
link files instead of copying
-L,
‑‑dereference
follow symbolic links
-P,
‑‑no‑dereference
don't follow symbolic links
-p preserve mode, ownership, timestamps
‑‑preserve[=attr_list] preserve the specified attributes
default: mode, ownership, timestamps, security, contexts links, all
‑‑no‑preserve=attr_list don't preserve the specified attributes
‑‑parents use full source file name under DIRECTORY
-R,
-r, ‑‑recursive
copy directories recursively
‑‑sparse=when control creation of sparse files
auto if SOURCE file is detected as sparse
always if the SOURCE file has enough strings of zeros
never
‑‑strip‑trailing-slashes remove any trailing slashes from each SOURCE argument
-t,
‑‑target‑directory=dir
copy all SOURCE arguments into DIRECTORY
-T,
‑‑no‑target-directory
treat DEST as a normal file
‑‑copy-contents copy contents of special files when recursive
-v,
‑‑verbose
display what is being done
-x,
‑‑one‑file‑system
stay on this file system
-Z,
‑‑context=context
set security context of copy to context
‑‑help display this help and exit
‑‑version output version information and exit

ENVIRONMENT
 SIMPLE_BACKUP_SUFFIX
 VERSION_CONTROL
none, off never make backups (even if --backup is given)
numbered, t make numbered backups
existing, nil numbered if numbered backups exist, simple otherwise
simple, never always make simple backups
As a special case, cp makes a backup of SOURCE when the force and backup options are given and SOURCE and DEST are the same name for an existing, regular file.

cp - copy files

BSD version i.e. Mac OS X (darwin) lion inclused -X

cp [-R [-H|-L|-P]]   [-f|-i|-n] [-v] [-a|-p] [-X] source target
the contents of the source are copied to the target.
Files that begin with a dot (ex: .bashrc, .profile) are not copied, use cp .* target.

cp [-R [-H|-L|-P]]   [-f|-i|-n] [-v] [-a| -p] [-X] source filetarget_directory
source files are copied to the target_directory.

An attempt to copy a file to itself fails.

-v verbose, showing files as they are copied.

-aSafe; i.e. Same as -pPR, preserves structure and attributes of files but not directory structure.
-i interactivly prompt to standard error before overwriting an existing file, y continues.
Not the default an alias cp='cp -i' is frequently entered into .profile
Overrides previous -n (don't overwrite).
-f force, overwrite an existing file, without prompting for confirmation even if its mode is not writable existing access rights will be retained. (-f overrides any previous -i or -n options.)
-n Do not overwrite an existing file. (-n overrides any previous -f or -i options.)
Not the default
-p preserve the modification time, access time, file flags, Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks
Not the default an alias cp='cp -p' is frequently entered into .profile
File mode is preserved without specifing -p.
If the user ID and group ID cannot be preserved, no error message is displayed and the exit value is not affected ( ex: cp /user/you/file mycopy )
If the source file has both "set user ID" and "set group ID" and either cannot be preserved, neither bits are preserved.

If the destination file exists, its contents are overwritten, but its mode, user ID, and group ID are unchanged unless -p was specified.

-XDo not copy Extended Attributes (EAs) or resource forks
 
-R Recursively copy the directory and the entire subtree.
If source_file ends in /, the contents of the directory are copied rather than the directory itself.

i.e.
cp -R /your/source .
  will cause a source directory to be created

cp -R /your/source/ .
   will cause the files in the source directory to be copied into the current directory

Created directories have the same mode as the corresponding source directory.
Symbolic links are copied, rather than indirected through.
Hard linked files are copied multiple times as separate files. This causes additional space to be required and the files in the destination directory are not longer linked.
To preserve hard links, use tar, cpio, or pax .

New special files are created rather than copying them as normal files.

Symbolic Link processing
-P not are followed (with -R. Default.
-L links are followed.
-H not followed when encountered in the tree traversal.
followed if specified on the command line .

In the cp fileDirectory form, target_directory must exist, unless a directory is the source and -R is specified.

The mode of the destination file (if it does not exist) is the mode of the source modified by the umask.

If the source file has its set user ID bit on, that bit is removed unless both the source file and the destination file are owned by the same user.
If the source file has its set group ID bit on, that bit is removed unless both the source file and the destination file are in the same group and the user is a member of that group.
If both the set user ID and set group ID bits are set, all of the above conditions must be fulfilled or both bits are removed.

Appropriate permissions are required for file creation or overwriting.

Symbolic links are followed unless -R is set.
-H or -L (in conjunction with -R) cause symbolic links to be followed as described above.
-H, -L and -P are ignored unless -R is specified.
These options override each other and the last one specified is used.

exits 0 on success, and >0 if an error occurs.

See mv, rcp, umask, fts, symlink

CP BSD July 23, 2002