How to copy files using the cp command
This tutorial details the basic usage of the
cp command for copying files in Linux. It contains examples of copying single files, multiple files and files containing spaces in their names.
What is the cp command?
cp is a command-line utility for copying files and directories from one place to another. It supports copying one or more files and directories and provides various options as well as the flexibility to batch-copy. Unlike the
cp leaves the original file unchanged. The
cp command is particularly useful for large copy jobs or tasks where multiple files and directories need to be copied.
Copy a file with cp
To copy a file, enter the name of the file to be copied and then the destination.
cp SOURCE DEST
For example, to create a copy of
bb.txt in the same directory:
cp aa.txt bb.txt
Note: the destination file-name needs to be specified if copying in the same directory.
Copy a file between directories with cp
The following example will copy the file
aa.txt from the current directory to another directory:
cp aa.txt ~/Documents/folder
To copy a file from one directory to another, specify the location of both the source file and destination in the command. To copy the file
aa.txt from the directory
~/Documents/folder to the directory
cp ~/Documents/folder/aa.txt ~/Documents/subfolder
In both examples above, notice that no file name was specified for the destination. The result is that a copy of the file
aa.txt will be added to the respective destination folder and will keep the same name. You can specify a new name of the copied file:
cp aa.txt ~/Documents/folder/aa-copy.txt #or cp ~/Documents/folder/aa.txt ~/Documents/subfolder/aa-copy-2.txt
Copy multiple files with cp
To copy multiple files using the
cp command, separate the source files with a space. In the following example, the three files
zz.txt will be copied:
cp xx.txt yy.txt zz.txt ~/Documents/folder
cp also allows for pattern matching to achieve the same result:
cp *.txt ~/Documents/folder
File names with spaces
File-names containing spaces can be copied by enclosing the file-name in either single or double quotes in the command. In the following example, the file
my spaced file.txt is to be copied:
cp 'my spaced file.txt' ~/Documents/folder #or cp "my spaced file.txt" ~/Documents/folder