cp

cp

The cp command in Unix and Linux is used to copy files and directories. It can copy single files, multiple files, and entire directory trees. Understanding the various options available with cp can help you perform more complex file operations with ease.

Basic Usage

The basic syntax for the cp command is:

cp [options] source destination
  • options: Command-line options to control the behavior of cp.

  • source: The file or directory to be copied.

  • destination: The location where the copy should be placed.

Examples

Copying a Single File

To copy a single file:

cp file1.txt file2.txt

This command copies file1.txt to file2.txt. If file2.txt already exists, it will be overwritten.

Copying Multiple Files

To copy multiple files to a directory:

cp file1.txt file2.txt dir/

This command copies file1.txt and file2.txt to the directory dir.

Copying Directories

To copy a directory and its contents:

This command copies the directory dir1 and all its contents (including subdirectories) to dir2.

Options

-i Option: Interactive Mode

To prompt before overwriting files:

This command prompts the user for confirmation before overwriting file2.txt.

-r Option: Recursive Copy

To copy directories recursively:

This command copies the directory dir1 and its contents to dir2.

-a Option: Archive Mode

To preserve the structure and attributes of files and directories:

This command preserves all attributes, including symbolic links, file permissions, and timestamps, when copying dir1 to dir2.

-u Option: Update Mode

To copy only when the source file is newer than the destination file or when the destination file is missing:

This command copies file1.txt to file2.txt only if file1.txt is newer or if file2.txt does not exist.

-v Option: Verbose Mode

To display detailed information about the copy process:

This command outputs detailed information about what is being copied.

-p Option: Preserve File Attributes

To preserve file attributes such as mode, ownership, and timestamps:

This command copies file1.txt to file2.txt and preserves the original file's attributes.

Practical Use Cases

Backup Files

To create a backup of a file:

This command creates a backup of file.txt with the name file.txt.bak.

Copying Configuration Files

To copy configuration files to a backup directory:

This command copies the /etc/myconfig directory and its contents to the /backup/myconfig directory.

Updating Files

To update files in a destination directory with newer versions from the source directory:

This command copies all files from /source to /destination, only overwriting files that are newer.

Summary

The cp command is a fundamental tool for copying files and directories in Unix and Linux environments. With its various options, it provides flexibility for different copy scenarios, such as preserving attributes, copying recursively, and updating files. Understanding these options and practical use cases can greatly enhance your file management capabilities.

help

man

Last updated