cp - Copies files
cp [-fhip] [--] source_file destination_file
cp [-fhip] [--] source_file... destination_directory
cp [-fhip] [-r | -R] [--] [source_file | source_directory]...
The cp command copies a source file or the files in a source directory to a
destination file or directory. If your source and destination are direc-
tories, the source is copied to the destination and created with the same
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
-f [Tru64 UNIX] The cp command does not prompt you when an existing file
is to be overwritten. (If both -f and -i are specified on the command
line--for example, because an alias includes one of them--whichever
appears last overrides the other.)
-h [Tru64 UNIX] Together with the -R option, the same as the -r option.
-i Prompts you with the name of the file whenever the copy would cause an
existing file to be overwritten. An answer beginning with y, or the
locale's equivalent of y, causes cp to continue. Any other answer
prevents it from overwriting the file.
-p Preserves for the copy the modification time, access time, file mode,
user ID, and group ID of the original, as allowed by permissions. If
the user ID and group ID cannot be preserved, no error message is
displayed and the exit value is not altered. If the original is set-
user-ID or set-group-ID, and either the user ID or the group ID cannot
be preserved, the set-user-ID and set-group-ID bits are not preserved
in the copy's permissions. [Tru64 UNIX] Preserves the extended file
attributes (property list), including the access control list (ACL) if
-r When the source is a directory, copies the directory and the entire
subtree connected at that point. Special file types, such as symbolic
links, named pipes (FIFOs), and block and character devices, are opened
and their contents are copied to regular files having the same name.
(This may be desired for links but is probably not desired for disk,
tape, or network devices.) For example, if a is a symbolic link to file
z and a is copied to b with the -r option, b is not a symbolic link to
file z but is a copy of it.
-R As with -r, when the source is a directory, copies the directory and
the entire subtree connected at that point. However, destination_files
are created with the same file types as source_files, for instance sym-
bolic links, named pipes (FIFOs), or block or character devices. As an
example, if a is a symbolic link to file z and a is copied to b with
the -R option, b will also be a symbolic link to file z. If source_file
is a FIFO, the file permission bits of destination_file are set to
those of source_file modified by the file creation mask of the user if
the -p option is not used.
-- Indicates that the arguments following this option are to be inter-
preted as file names. This null option allows the specification of file
names that start with a minus.
If a destination file already exists, its contents are overwritten if per-
missions allow, but cp does not change its mode, user ID, or group ID. How-
ever, if the file is not being copied by the root user, writing the file
may clear the set-user-ID or set-group-ID permission bits.
If the destination file does not exist, the mode of the source file is
used, as modified by the file mode creation mask (umask). If the source
file is either set-user-ID or set-group-ID, those bits are removed unless
the -p option is used.
Appropriate permissions are always required for file creation or overwrit-
[Tru64 UNIX] You can also copy special device files. If the file is a
named pipe, the data in the pipe is copied into a regular file. If the file
is a device, the file is read until the end of file, and that data is
copied into a regular file.
The LC_MESSAGES variable determines the locale's equivalent of y or n (for
If the source_file is a directory, the following is true:
+ If neither the -R or -r option was specified, an error message is
displayed and source_file is not copied.
+ If the target specified exists and is a file, not a directory, an
error message is displayed and source_file is not copied.
+ If the target does not exist and the -p option is specified, the per-
mission bits of the target directory are set equal to the source
directory bitwise inclusively ORed with S_IRWXU (0700 octal). This
means the newly created directory will always allow the owner read,
write and execute permission.
+ If the target does not exist and the -p option is not specified, the
permission bits of the target directory are set equal to the source
directory bits, modified by the file creation mask of the user (shuts
off the corresponding permission bits specified in the umask). The
resulting permission bits are then ORed with S_IRWXU (0700 octal)
which gives the owner read, write and execute permission.
+ If the target does not exist and cannot be created, an error message
is displayed and source_file is not copied.
1. Do not give the destination the same name as one of the source files.
2. If you specify a directory as the destination, the directory must
3. If you are using the -r option to copy the contents of one directory
to another, and source_directory contains subdirectories that do not
exist in destination_directory, the subdirectories are created.
The following exit values are returned:
0 Successful completion.
>>0 An error occurred.
1. To copy one file to another, enter:
cp file1 file2
If file2 exists (and is writable), it is replaced by file1.
2. To copy files to a directory, enter:
cp file1 file2 dir1
The dir1 directory must exist.
3. To copy all files in a directory and preserve their modification
cp -p dir1/* dir2
4. To copy a directory tree to another directory, enter:
cp -r dir1 dir2
The dir1 tree is created in dir2.
The following environment variables affect the execution of cp:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined.
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
Determines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi-
byte characters in arguments).
Determines the locale for the format and contents of diagnostic mes-
sages written to standard error.
Determines the location of message catalogues for the processing of
Commands: cpio(1), find(1), link(1), ln(1), mv(1), pax(1), tar(1),
Files: proplist(4), acl(4)