cp - Copies files
cp [-fhip] [--] source_file destination_file
cp [-fhip] [--] source_file... destination_directory
cp [-fhip] [-r | -R] [--] [source_file | source_directory]...
destination_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 directories, the source is
copied to the destination and created with the same name.
Interfaces documented on this reference page conform to
industry standards as follows:
cp: XCU5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
[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.) [Tru64 UNIX] Together with the -R
option, the same as the -r option. 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. 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 setgroup-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 any. 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. 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 symbolic 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 interpreted 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 permissions allow, but cp does not change
its mode, user ID, or group ID. However, 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-userID
or set-group-ID, those bits are removed unless the -p
option is used.
Appropriate permissions are always required for file creation
or overwriting.
[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 yes/no queries).
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 permission 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.
Do not give the destination the same name as one of the
source files. If you specify a directory as the destination,
the directory must already exist. 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: Successful completion.
An error occurred.
To copy one file to another, enter: cp file1 file2
If file2 exists (and is writable), it is replaced
by file1. To copy files to a directory, enter: cp
file1 file2 dir1
The dir1 directory must exist. To copy all files
in a directory and preserve their modification
times, enter: cp -p dir1/* dir2 To copy a directory
tree to another directory, enter: cp -r dir1 dir2
The dir1 tree is created in dir2.
ENVIRONMENT VARIABLES [Toc] [Back] 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 multibyte
characters in arguments). Determines the locale for the
format and contents of diagnostic messages written to
standard error. Determines the location of message catalogues
for the processing of LC_MESSAGES.
Commands: cpio(1), find(1), link(1), ln(1), mv(1),
pax(1), tar(1), umask(1)
Functions: umask(2)
Files: proplist(4), acl(4)
Standards: standards(5)
cp(1)
[ Back ] |