# phpman > man > CP(1)

> **TLDR:** Copy files and directories.
>
- Copy a file to another location:
  `cp {{path/to/source_file}} {{path/to/target_file}}`
- Copy a file into another directory, keeping the filename:
  `cp {{path/to/source_file}} {{path/to/target_parent_directory}}`
- Recursively copy a directory's contents to another location (if the destination exists, the directory is copied inside it):
  `cp {{-r|--recursive}} {{path/to/source_directory}} {{path/to/target_directory}}`
- Copy a directory recursively, in verbose mode (shows files as they are copied):
  `cp {{-vr|--verbose --recursive}} {{path/to/source_directory}} {{path/to/target_directory}}`
- Copy multiple files at once to a directory:
  `cp {{-t|--target-directory}} {{path/to/destination_directory}} {{path/to/file1 path/to/file2 ...}}`
- Copy all files with a specific extension to another location, in interactive mode (prompts user before overwriting):
  `cp {{-i|--interactive}} {{*.ext}} {{path/to/target_directory}}`
- Follow symbolic links before copying:
  `cp {{-L|--dereference}} {{link}} {{path/to/target_directory}}`
- Use the full path of source files, creating any missing intermediate directories when copying:
  `cp --parents {{source/path/to/file}} {{path/to/target_file}}`

*Source: tldr-pages*

---

[CP(1)](https://www.chedong.com/phpMan.php/man/CP/1/markdown)                                       User Commands                                      [CP(1)](https://www.chedong.com/phpMan.php/man/CP/1/markdown)



## NAME
       cp - copy files and directories

## SYNOPSIS
       **cp** [_OPTION_]... [_-T_] _SOURCE_ _DEST_
       **cp** [_OPTION_]... _SOURCE_... _DIRECTORY_
       **cp** [_OPTION_]... _-t_ _DIRECTORY_ _SOURCE_...

## DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

       Mandatory arguments to long options are mandatory for short options too.

### -a --archive
              same as **-dR** **--preserve**=_all_

### --attributes-only
              don't copy the file data, just the attributes

       **--backup**[=_CONTROL_]
              make a backup of each existing destination file

### -b --backup

### --copy-contents
              copy contents of special files when recursive

### -d --no-dereference --preserve

### -f --force
              if an existing destination file cannot be opened, remove it and try again (this option
              is ignored when the **-n** option is also used)

### -i --interactive
              prompt before overwrite (overrides a previous **-n** option)

### -H

### -l --link
              hard link files instead of copying

### -L --dereference
              always follow symbolic links in SOURCE

### -n --no-clobber
              do not overwrite an existing file (overrides a previous **-i** option)

### -P --no-dereference
              never follow symbolic links in SOURCE

### -p --preserve

       **--preserve**[=_ATTR_LIST_]
              preserve the specified attributes (default:  mode,ownership,timestamps),  if  possible
              additional attributes: context, links, xattr, all

       **--no-preserve**=_ATTR_LIST_
              don't preserve the specified attributes

### --parents
              use full source file name under DIRECTORY

### -R -r --recursive
              copy directories recursively

       **--reflink**[=_WHEN_]
              control clone/CoW copies. See below

### --remove-destination
              remove  each  existing  destination  file  before attempting to open it (contrast with
              **--force**)

       **--sparse**=_WHEN_
              control creation of sparse files. See below

### --strip-trailing-slashes
              remove any trailing slashes from each SOURCE argument

### -s --symbolic-link
              make symbolic links instead of copying

### -S --suffix
              override the usual backup suffix

### -t --target-directory
              copy all SOURCE arguments into DIRECTORY

### -T --no-target-directory
              treat DEST as a normal file

### -u --update
              copy only when the SOURCE file is newer than the destination file or when the destina‐
              tion file is missing

### -v --verbose
              explain what is being done

### -x --one-file-system
              stay on this file system

### -Z

       **--context**[=_CTX_]
              like **-Z**, or if CTX is specified then set the SELinux or SMACK security context to CTX

       **--help** display this help and exit

### --version
              output version information and exit

       By  default, sparse SOURCE files are detected by a crude heuristic and the corresponding DEST
       file is made sparse as well.  That  is  the  behavior  selected  by  **--sparse**=_auto_.   Specify
       **--sparse**=_always_  to create a sparse DEST file whenever the SOURCE file contains a long enough
       sequence of zero bytes.  Use **--sparse**=_never_ to inhibit creation of sparse files.

       When **--reflink**[=_always_] is specified, perform a lightweight copy, where the data  blocks  are
       copied  only  when modified.  If this is not possible the copy fails, or if **--reflink**=_auto_ is
       specified, fall back to a standard copy.  Use **--reflink**=_never_ to ensure a  standard  copy  is
       performed.

       The backup suffix is '~', unless set with **--suffix** or SIMPLE_BACKUP_SUFFIX.  The version con‐
       trol method may be selected via the **--backup** option or through the  VERSION_CONTROL  environ‐
       ment variable.  Here are the values:

       none, off
              never make backups (even if **--backup** is given)

       numbered, t
              make numbered backups

       existing, nil
              numbered if numbered backups exist, simple otherwise

       simple, never
              always make simple backups

       As  a  special  case, cp makes a backup of SOURCE when the force and backup options are given
       and SOURCE and DEST are the same name for an existing, regular file.

## AUTHOR
       Written by Torbjorn Granlund, David MacKenzie, and Jim Meyering.

## REPORTING BUGS
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2020 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3  or  later
       <<https://gnu.org/licenses/gpl.html>>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY, to
       the extent permitted by law.

## SEE ALSO
       Full documentation <<https://www.gnu.org/software/coreutils/cp>>
       or available locally via: info '(coreutils) cp invocation'



GNU coreutils 8.32                          January 2026                                       [CP(1)](https://www.chedong.com/phpMan.php/man/CP/1/markdown)
