Skip to content

The cp command

The cp is a command-line utility for copying files and directory. cp stands for copy. This command is used to copy files or group of files or directory. It creates an exact image of a file on a disk with different file name. The cp command requires at least two filenames in its arguments.

Examples:

  1. To copy the contents of the source file to the destination file.

cp sourceFile destFile

If the destination file doesn't exist then the file is created and the content is copied to it. If it exists then the file is overwritten.

  1. To copy a file to another directory specify the absolute or the relative path to the destination directory.

cp sourceFile /folderName/destFile

  1. To copy a directory, including all its files and subdirectories

cp -R folderName1 folderName2

The command above creates the destination directory and recursively copies all files and subdirectories from the source to the destination directory.

If the destination directory already exists, the source directory itself and its content are copied inside the destination directory.

  1. To copy only the files and subdirectories but not the source directory

cp -RT folderName1 folderName2

Syntax:

The general syntax for the cp command is as follows:

cp [OPTION] SOURCE DESTINATION cp [OPTION] SOURCE DIRECTORY cp [OPTION] SOURCE-1 SOURCE-2 SOURCE-3 SOURCE-n DIRECTORY

The first and second syntax is used to copy Source file to Destination file or Directory. The third syntax is used to copy multiple Sources(files) to Directory.

Some useful options

  1. -i (interactive) i stands for Interactive copying. With this option system first warns the user before overwriting the destination file. cp prompts for a response, if you press y then it overwrites the file and with any other option leave it uncopied.

$ cp -i file1.txt fileName2.txt cp: overwrite 'file2.txt'? y

  1. -b(backup) -b(backup): With this option cp command creates the backup of the destination file in the same folder with the different name and in different format.

``` $ ls a.txt b.txt

$ cp -b a.txt b.txt

$ ls a.txt b.txt b.txt~ ```

  1. -f(force) If the system is unable to open destination file for writing operation because the user doesn't have writing permission for this file then by using -f option with cp command, destination file is deleted first and then copying of content is done from source to destination file. $ ls -l b.txt -r-xr-xr-x+ 1 User User 3 Nov 24 08:45 b.txt User, group and others doesn't have writing permission.

Without -f option, command not executed

$ cp a.txt b.txt cp: cannot create regular file 'b.txt': Permission denied

With -f option, command executed successfully $ cp -f a.txt b.txt

Additional Flags and their Functionalities:

Short Flag Long Flag Description
-i
–interactive
prompt before overwrite
-f
–force
If an existing destination file cannot be opened, remove it and try again
-b
-
Creates the backup of the destination file in the same folder with the different name and in different format.
-r or -R --recursive cp command shows its recursive behavior by copying the entire directory structure recursively.
-n --no-clobber do not overwrite an existing file (overrides a previous -i option)
-p
-
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

Last update: 2022-05-12
Back to top