CP(1)

NAME
cp - copy files

SYNOPSIS
cp [options] source dest
cp [options] source... directory
Options:
[-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]

DESCRIPTION
This documentation is no longer being maintained and may be inaccurate or incomplete. The Texinfo documentation is now the authoritative source.

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.

  OPTIONS

-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.

-r  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.

--help
    Print a usage message on standard output and exit successfully.

--version
    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.