43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
---
|
|
title: Bash Copy
|
|
---
|
|
## Bash command: cp
|
|
`cp` is used to copy files and directories.
|
|
The utility copies the contents of the source file to the target file. The utility can also copy the contents of each named source file to the target directory. The names of the files themselves are not changed. If cp detects an attempt to copy a file to itself, the copy will fail.
|
|
### Usage
|
|
```
|
|
cp [options] source target
|
|
```
|
|
Commonly used options:
|
|
* `-p` (preserve) - used to preserve time of the last data modification, time of last access, ownership, and permissions of the source for the target
|
|
* `-R or -r` (recursive) - used to recursively copy directories
|
|
### Examples
|
|
#### Copy a file
|
|
```bash
|
|
cp somefile.txt newfile.txt
|
|
```
|
|
Run `ls` and you will see you have a new file called `newfile.txt`
|
|
#### Copy a file to a directory
|
|
```bash
|
|
cp -p somefile.txt your/target/directory
|
|
```
|
|
`cd` into the target directory, `ls`, and you will see a copy of your file. The `-p` option is added to preserve the files attributes.
|
|
#### Copy multiple files to a directory
|
|
```bash
|
|
cp file1.txt file2.txt fileN.txt your/target/directory
|
|
```
|
|
`cd` into the target directory, `ls`, and you will see copies of all of the files.
|
|
### Copy an entire set of files with given extension
|
|
```bash
|
|
cp *.extension directory
|
|
```
|
|
`cd` into the target directory and you will see all files with entered extension into the directory
|
|
#### Copy a directory
|
|
```bash
|
|
cp -R directory/to/copy your/target/directory
|
|
```
|
|
`cd` into the target directory and `ls` to see your directory. The `-R` option is added to recursively copy everything in the directory.
|
|
### More Information
|
|
* run `man cp` to get a list of all options for this command
|
|
* [Wikipedia](https://en.wikipedia.org/wiki/Cp_(Unix))
|