CP(1) User Commands CP(1)
NAME
cp - copy files
SYNOPSIS
/usr/bin/cp [
-afip@/]
source_file target_file /usr/bin/cp [
-afip@/]
source_file...
target /usr/bin/cp [
-r |
-R [
-H |
-L |
-P]] [
-afip@/]
source_dir...
target /usr/bin/cp [
-R |
-R [
-H |
-L |
-P]] [
-afip@/]
source_dir...
target /usr/xpg4/bin/cp [
-afip@/]
source_file target_file /usr/xpg4/bin/cp [
-afip@/]
source_file...
target /usr/xpg4/bin/cp [
-r |
-R [
-H |
-L |
-P]] [
-afip@/]
source_dir...
target /usr/xpg4/bin/cp [
-R |
-R [
-H |
-L |
-P]] [
-afip@/]
source_dir...
targetDESCRIPTION
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 directory'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 or fourth synopsis forms, one or more directories specified
by
source_dir are copied to the directory specified by
target. Either the
-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:
-a Archive mode. Same as -RpP.
-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.
If the
source_file operand is a symbolic link, then
cp copies the
file referenced by the symbolic link for the
source_file operand.
All other symbolic links encountered during traversal of a file
hierarchy are preserved.
-i Interactive.
cp prompts for confirmation whenever the copy would
overwrite an existing
target. An affirmative response 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.
Copies files referenced by symbolic links. Symbolic links
encountered during traversal of a file hierarchy are not preserved.
-p Preserve. The
cp utility duplicates not only the contents of
source_file, but also attempts to preserve its ACL, access and
modification times, extended attributes, extended system
attributes, file mode, and owner and group ids.
If
cp is unable to preserve the access and modification times,
extended attributes, or the file mode,
cp does not consider it a
failure. If
cp is unable to preserve the owner and group id, the
copy does not fail, but
cp silently clears the
S_ISUID and
S_ISGID bits from the file mode of the target. The copy fails if
cp is
unable to clear these bits. If
cp is unable to preserve the ACL or
extended system attributes, the copy fails. If the copy fails, then
a diagnostic message is written to
stderr and (after processing any
remaining operands)
cp exits with a
non-zero exit status.
-P Takes actions on any symbolic link specified as a
source_file operand or any symbolic link encountered during traversal of a file
hierarchy.
Copies symbolic links. Symbolic links encountered during traversal
of a file hierarchy are preserved.
-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.
-/ Preserves extended attributes and extended system attributes. Along
with the file's data, the
cp utility attempts to copy extended
attributes and extended system attributes from each source file,
and extended system attributes associated with extended attributes
to the destination file. If
cp is unable to copy extended
attributes or extended system attributes, then a diagnostic message
is written to
stderr and (after processing any remaining operands)
exits with a
non-zero exit status.
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 If the
-p option is specified with either the
-@ option or the
-/ option,
/usr/bin/cp behaves as follows
o When both
-p and
-@ are specified in any order, the copy fails
if extended attributes cannot be copied.
o When both
-p and
-/ are specified in any order, the copy fails
if extended system attributes cannot be copied.
/usr/xpg4/bin/cp If the
-p option is specified with either the
-@ option or the
-/ option,
/usr/xpg4/bin/cp behaves as follows:
o When both
-p and
-@ are specified, the last option specified
determines whether the copy fails if extended attributes
cannot be preserved.
o When both
-p and
-/ are specified, the last option specified
determines whether the copy fails if extended system
attributes cannot be preserved.
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(7) 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
Example 4: Copying Extended File System Attributes
The following example copies extended file system attributes:
$ ls -/ c file1
-rw-r--r-- 1 foo staff 0 Oct 29 20:04 file1
{AH-----m--}
$ cp -/ file1 file2
$ ls -/c file2
-rw-r--r-- 1 foo staff 0 Oct 29 20:17 file2
{AH-----m--}
Example 5: Failing to Copy Extended System Attributes
The following example fails to copy extended system attributes:
$ ls -/c file1
-rw-r--r-- 1 foo staff 0 Oct 29 20:04 file1
{AH-----m--}
$ cp -/ file1 /tmp
cp: Failed to copy extended system attributes from file1 to /tmp/file1
$ ls -/c /tmp/file1
-rw-r--r-- 1 foo staff 0 Oct 29 20:09 /tmp/file1
{}
ENVIRONMENT VARIABLES
See
environ(7) for descriptions of the following environment variables
that affect the execution of
cp:
LANG,
LC_ALL,
LC_COLLATE,
LC_CTYPE,
LC_MESSAGES, and
NLSPATH.
Affirmative responses are processed using the extended regular expression
defined for the
yesexpr keyword in the
LC_MESSAGES category of the user's
locale. The locale specified in the
LC_COLLATE category defines the
behavior of ranges, equivalence classes, and multi-character collating
elements used in the expression defined for
yesexpr. The locale specified
in
LC_CTYPE determines the locale for interpretation of sequences of
bytes of text data a characters, the behavior of character classes used
in the expression defined for the
yesexpr. See
locale(7).
EXIT STATUS
The following exit values are returned:
0 All files were copied successfully.
>0 An error occurred.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
/usr/bin/cp +--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
/usr/xpg4/bin/cp +--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
SEE ALSO
chmod(1),
chown(1),
setfacl(1),
utime(2),
fgetattr(3C),
attributes(7),
environ(7),
fsattr(7),
largefile(7),
locale(7),
standards(7)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
-.
May 17, 2020
CP(1)