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


--help, -h

Print help information

--version, -V

Print version information

--target-directory=<target-directory>, -t <target-directory>

copy all SOURCE arguments into target-directory

--no-target-directory, -T

Treat DEST as a regular file and not a directory

--interactive, -i

ask before overwriting files

--link, -l

hard-link files instead of copying

--no-clobber, -n

don't overwrite a file that already exists

--recursive, -r

copy directories recursively


same as -r


remove any trailing slashes from each SOURCE argument

--verbose, -v

explicitly state what is being done

--symbolic-link, -s

make symbolic links instead of copying

--force, -f

if an existing destination file cannot be opened, remove it and try again (this option is ignored when the -n option is also used). Currently not implemented for Windows.


remove each existing destination file before attempting to open it (contrast with --force). On Windows, currently only works for writeable files.


make a backup of each existing destination file


like --backup but does not accept an argument

--suffix=<SUFFIX>, -S <SUFFIX>

override the usual backup suffix

--update, -u

copy only when the SOURCE file is newer than the destination file or when the destination file is missing


control clone/CoW copies. See below


Don't copy the file data, just the attributes


Preserve the specified attributes (default: mode, ownership (unix only), timestamps), if possible additional attributes: context, links, xattr, all

--preserve-default-attributes, -p

same as --preserve=mode,ownership(unix only),timestamps


don't preserve the specified attributes


use full source file name under DIRECTORY

--no-dereference, -P

never follow symbolic links in SOURCE

--dereference, -L

always follow symbolic links in SOURCE

--archive, -a

Same as -dR --preserve=all


same as --no-dereference --preserve=links

--one-file-system, -x

stay on this file system


NotImplemented: copy contents of special files when recursive


NotImplemented: control creation of sparse files. See below


NotImplemented: set SELinux security context of destination file to default type


NotImplemented: follow command-line symbolic links in SOURCE


Copy a file to another location:

cp {{path/to/source_file.ext}} {{path/to/target_file.ext}}

Copy a file into another directory, keeping the filename:

cp {{path/to/source_file.ext}} {{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 {{path/to/source_directory}} {{path/to/target_directory}}

Copy a directory recursively, in verbose mode (shows files as they are copied):

cp -vR {{path/to/source_directory}} {{path/to/target_directory}}

Copy text files to another location, in interactive mode (prompts user before overwriting):

cp -i {{*.txt}} {{path/to/target_directory}}

Follow symbolic links before copying:

cp -L {{link}} {{path/to/target_directory}}

The examples are provided by the tldr-pages project under the CC BY 4.0 License.

Please note that, as uutils is a work in progress, some examples might fail.