cp - copy files


cp [options] source dest
cp [options] source... directory
[-abdfilprsuvxPR] [-S backup-suffix] [-V {numbered,existing,simple}] [--backup] [--no-dereference] [--force] [--interactive] [--one-file-system] [--preserve] [--recursive] [--update] [--verbose] [--suffix=backup-suffix] [--version-control={numbered,existing,simple}] [--archive] [--parents] [--link] [--symbolic-link] [--help] [--version]


This manual page documents the GNU version of cp . If the last argument names an existing directory, cp copies each other given file into a file with the same name in that directory. Otherwise, if only two files are given, it copies the first onto the second. It is an error if the last argument is not a directory and more than two files are given. By default, it does not copy directories.


-a, --archive
Preserve as much as possible of the structure and attributes of the original files in the copy. The same as -dpR .

-b, --backup
Make backups of files that are about to be overwritten or removed.

-d, --no-dereference
Copy symbolic links as symbolic links rather than copying the files that they point to, and preserve hard link relationships between source files in the copies.

-f, --force
Remove existing destination files.

-i, --interactive
Prompt whether to overwrite existing regular destination files.

-l, --link
Make hard links instead of copies of non-directories.

-P, --parents
Form the name of each destination file by appending to the target directory a slash and the specified name of the source file. The last argument given to cp must be the name of an existing directory. For example, the command `cp --parents a/b/c existing_dir' copies the file a/b/c to existing_dir/a/b/c, creating any missing intermediate directories.

-p, --preserve
Preserve the original files' owner, group, permissions, and timestamps.

Copy directories recursively, copying all non-directories as if they were regular files.

-s, --symbolic-link
Make symbolic links instead of copies of non-directories. All source filenames must be absolute (starting with `/') unless the destination files are in the current directory. This option produces an error message on systems that do not support symbolic links.

-u, --update
Do not copy a nondirectory that has an existing destination with the same or newer modification time.

-v, --verbose
Print the name of each file before copying it.

-x, --one-file-system
Skip subdirectories that are on different filesystems from the one that the copy started on.

-R, --recursive
Copy directories recursively.

Print a usage message on standard output and exit successfully.

Print version information on standard output then exit successfully.

-S, --suffix backup-suffix
The suffix used for making simple backup files can be set with the SIMPLE_BACKUP_SUFFIX environment variable, which can be overridden by this option. If neither of those is given, the default is `~', as it is in Emacs.

-V, --version-control {numbered,existing,simple}
The type of backups made can be set with the VERSION_CONTROL environment variable, which can be overridden by this option. If VERSION_CONTROL is not set and this option is not given, the default backup type is `existing'. The value of the VERSION_CONTROL environment variable and the argument to this option are like the GNU Emacs `version-control' variable; they also recognize synonyms that are more descriptive. The valid values are (unique abbreviations are accepted):

`t' or `numbered'
Always make numbered backups.

`nil' or `existing'
Make numbered backups of files that already have them, simple backups of the others.

`never' or `simple'
Always make simple backups.