cp(1) User Commands cp(1)
NAME
cp - copy files
SYNOPSIS
/usr/bin/cp [-fip@] source_file target_file
/usr/bin/cp [-fip@] source_file... target
/usr/bin/cp -r | -R [-H | -L | -P] [-fip@] source_dir... target
/usr/xpg4/bin/cp [-fip@] source_file target_file
/usr/xpg4/bin/cp [-fip@] source_file... target
/usr/xpg4/bin/cp -r | -R [-H | -L | -P] [-fip@] source_dir... target
DESCRIPTION
In the first synopsis form, neither source_file nor target_file are directory files, nor can they have the same name. The cp utility copies
the contents of source_file to the destination path named by target_file. If target_file exists, cp overwrites its contents, but the mode
(and ACL if applicable), owner, and group associated with it are not changed. The last modification time of target_file and the last
access time of source_file are set to the time the copy was made. If target_file does not exist, cp creates a new file named target_file
that has the same mode as source_file except that the sticky bit is not set unless the user is super-user. In this case, the owner and
group of target_file are those of the user, unless the setgid bit is set on the directory containing the newly created file. If the direc-
tory's setgid bit is set, the newly created file has the group of the containing directory rather than of the creating user. If target_file
is a link to another file, cp overwrites the link destination with the contents of source_file; the link(s) from target_file remains.
In the second synopsis form, one or more source_files are copied to the directory specified by target. It is an error if any source_file is
a file of type directory, if target either does not exist or is not a directory.
In the third synopsis form, one or more directories specified by source_dir are copied to the directory specified by target. Either -r or
-R must be specified. For each source_dir, cp copies all files and subdirectories.
OPTIONS
The following options are supported for both /usr/bin/cp and /usr/xpg4/bin/cp:
-f Unlink. If a file descriptor for a destination file cannot be obtained, this option attempts to unlink the destination file and
proceed.
-H Takes actions based on the type and contents of the file referenced by any symbolic link specified as a source_file operand.
-i Interactive. cp prompts for confirmation whenever the copy would overwrite an existing target. A y answer means that the copy
should proceed. Any other answer prevents cp from overwriting target.
-L Takes actions based on the type and contents of the file referenced by any symbolic link specified as a source_file operand or any
symbolic links encountered during traversal of a file hierarchy.
-P Takes actions on any symbolic link specified as a source_file operand or any symbolic link encountered during traversal of a file
hierarchy.
-r Recursive. cp copies the directory and all its files, including any subdirectories and their files to target. Unless the -H, -L,
or -P option is specified, the -L option is used as the default mode.
-R Same as -r, except pipes are replicated, not read from.
-@ Preserves extended attributes. cp attempts to copy all of the source file's extended attributes along with the file data to the
destination file.
Specifying more than one of the mutually-exclusive options -H, -L, and -P is not considered an error. The last option specified determines
the behavior of the utility.
/usr/bin/cp
The following option is supported for /usr/bin/cp only:
-p Preserve. cp duplicates not only the contents of source_file, but also preserves the owner and group id, permission modes, modifi-
cation and access time, ACLs, and extended attributes, if applicable. The command can fail if ACLs are copied to a file system
without appropriate support. The command does not fail if unable to preserve extended attributes, modification and access time, or
permission modes. If unable to preserve owner and group id, cp does not fail, and it clearsS_ISUID and S_ISGID bits in the target.
cp prints a diagnostic message to stderr and return a non-zero exit status if unable to clear these bits.
In order to preserve the owner and group id, permission modes, and modification and access times, users must have the appropriate
file access permissions. This includes being superuser or the same owner id as the destination file.
When both -p and -@ options are specified, the -p option determines the behavior. However, the command can fail if unable to pre-
serve extended attributes.
/usr/xpg4/bin/cp
The following option is supported for /usr/xpg4/bin/cp only:
-p Preserve. cp duplicates not only the contents of source_file, but also preserves the owner and group id, permission modes, modifi-
cation and access time, ACLs, and extended attributes, if applicable. The command can fail if ACLs are copied to a file system
without appropriate support. The command does not fail if unable to preserve extended attributes. If unable to duplicate the modi-
fication and access time or the permission modes, cp prints a diagnostic message to stderr and return a non-zero exit status. If
unable to preserve owner and group id, cp does not fail, and it clearsS_ISUID and S_ISGID bits in the target. cp prints a diagnos-
tic message to stderr and return a non-zero exit status if unable to clear these bits.
In order to preserve the owner and group id, permission modes, and modification and access times, users must have the appropriate
file access permissions. This includes being superuser or the same owner id as the destination file.
When both -p and -@ options are specified, the last specified -p or -@ option determines the behavior.
OPERANDS
The following operands are supported:
source_file A pathname of a regular file to be copied.
source_dir A pathname of a directory to be copied.
target_file A pathname of an existing or non-existing file, used for the output when a single file is copied.
target A pathname of a directory to contain the copied files.
USAGE
See largefile(5) for the description of the behavior of cp when encountering files greater than or equal to 2 Gbyte ( 2**31 bytes).
EXAMPLES
Example 1: Copying a File
The following example copies a file:
example% cp goodies goodies.old
example% ls goodies*
goodies goodies.old
Example 2: Copying a List of Files
The following example copies a list of files to a destination directory:
example% cp ~/src/* /tmp
Example 3: Copying a Directory
The following example copies a directory, first to a new, and then to an existing destination directory
example% ls ~/bkup
/usr/example/fred/bkup not found
example% cp -r ~/src ~/bkup
example% ls -R ~/bkup
x.c y.c z.sh
example% cp -r ~/src ~/bkup
example% ls -R ~/bkup
src x.c y.c z.sh
src:
x.c y.c z.s
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of cp: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
LC_MESSAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 All files were copied successfully.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
/usr/bin/cp
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Stable |
+-----------------------------+-----------------------------+
/usr/xpg4/bin/cp
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWxcu4 |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
chmod(1), chown(1), setfacl(1), utime(2), attributes(5), environ(5), fsattr(5), largefile(5), standards(5)
NOTES
The permission modes of the source file are preserved in the copy.
A -- permits the user to mark the end of any command line options explicitly, thus allowing cp to recognize filename arguments that begin
with a -.
SunOS 5.10 13 May 2004 cp(1)