cp command
The cp command, short for “copy,” is the main Linux utility for duplicating files and directories. Whether making a backup, organizing a project, or moving content, cp allows smooth transfers and ensures the original remains unchanged.
To use cp, provide at least two arguments: a source and a target.
cp [source_file] [destination]If you specify a directory as the destination, the file is copied into that directory.
cp report.md backup_report.mdIf backup_report.md doesn’t exist, it gets created. If it exists, the old content is lost, replaced by the new copy.
cp intro.txt summary.txt notes.txt /archive/All three files now appear in the /archive folder. If the directory doesn’t exist, cp creates it and fills it with the specified files (as long as you have permissions).
cp -R projectX/ backup_projectX/The -R flag makes cp copy the entire directory, including subfolders and files, preserving structure.
| Option | Description | Example |
|---|---|---|
| -i | Prompt before overwriting existing files | cp -i notes.txt /archive/ |
| -n | Don’t overwrite existing files in the destination | cp -n report.md /archive/ |
| -r, -R | Copy directories and their contents recursively | cp -r images/ backup_images/ |
| -v | Show progress and copied files | cp -v *.pdf /backup/ |
| -p | Preserve original file attributes (timestamps, permissions, etc.) | cp -p config.yaml /backup/ |
| -u | Only copy if source file is newer or missing in destination | cp -u draft.txt /docs/ |
| -f | Force overwrite by removing destination file if needed | cp -f log.csv results/ |
| -a | Archive mode: preserve structure and metadata, copy recursively | cp -a mydir/ copydir/ |
Easily move groups of files by pattern:
cp *.jpg dummy_photos/Copies all .jpg files to the dummy_photos folder.
Instead of overwriting, create a backup copy:
cp --backup report.md /archive/If a file with the same name exists at the destination, a backup gets created.
Mastering the cp command helps you protect, organize, and move data efficiently on any Linux system. Understanding its options keeps your work safe and saves time especially when handling critical system or project files.
Read More: History of Linux
Install Kali Linux Here
The ss command in Linux lists open sockets and active network connections. It replaced the deprecated netstat command and…
The ftp command in Linux connects to a remote FTP server and transfers files. FTP transmits everything…
The lsmod command in Linux lists all currently loaded kernel modules. It reads /proc/modules — a virtual file maintained…
The rename command in Linux renames multiple files at once using Perl regular expressions. Unlike mv, which handles…
The pgrep command in Linux finds the PIDs of running processes based on a name or other…
The unlink command in Linux removes a single file by deleting its directory entry. It is a…