cp command copies files from one location to another.
Syntax
cp [OPTION]… SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… –target-directory=DIRECTORY SOURCE…
-a, –archive | same as -dpR |
–backup[=CONTROL] | make a backup of each existing destination file |
-b | like –backup but does not accept an argument |
–copy-contents | copy contents of special files when recursive |
-d | same as –no-dereference –preserve=link |
–no-dereference | never follow symbolic links |
-f, –force | if an existing destination file cannot be opened, remove it and try again |
-i, –interactive | prompt before overwrite |
-H | follow command-line symbolic links |
-l, –link | link files instead of copying |
-L, –dereference | always follow symbolic links |
-p | same as –preserve=mode,ownership,timestamps |
–preserve[=ATTR_LIST] | preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: links, all |
–no-preserve=ATTR_LIST | don’t preserve the specified attributes |
–parents | append source path to DIRECTORY |
-P | same as ‘–no-dereference’ |
-R, -r, –recursive | copy directories recursively |
–remove-destination | remove each existing destination file before attempting to open it (contrast with –force) |
–reply={yes,no,query} | specify how to handle the prompt about an existing destination file |
–sparse=WHEN | control creation of sparse files |
–strip-trailing-slashes | remove any trailing slashes from each SOURCE argument |
-s, –symbolic-link | make symbolic links instead of copying |
-S, –suffix=SUFFIX | override the usual backup suffix |
–target-directory=DIRECTORY | move all SOURCE arguments into DIRECTORY |
-u, –update | copy only when the SOURCE file is newer than the destination file or when the destination file is missing |
-v, –verbose | explain what is being done |
-x, –one-file-system | stay on this file system |
Examples
cp file1.txt newdir
Copies the file1.txt in the current directory to the newdir directory.
cp /home/public_html/mylog.txt /home/public_html/backup/mylog.bak
Copies the mylog.txt file in the public_html directory into the public_html/backup directory as mylog.bak. The files are identical however have different names.
cp *.txt newdir
Copy all files ending in .txt into the newdir directory.
cp -r /home/hope/files/* /home/hope/backup
Copies all the files, directories, and subdirectories in the files directory into the backup directory.
Note: Many new versions of Linux/Unix or their variants may also be able to use copy in place of cp or have an alias setup for cp as copy.