How to Use cp, mv, and rm - Linux File Operations Guide

How to Use cp, mv, and rm - Linux File Operations Guide

Introduction

Lina: Linny-senpai, I tried to copy a file and I think I accidentally overwrote something...
Linny-senpai: Oh no, that can be stressful. Linux file operations are convenient, but a small mistake can delete important files.
Lina: That's scary... How can I operate files safely?
Linny-senpai: Don't worry, if you know the key points, you can use them safely. Today, let's learn the three commands cp, mv, and rm along with how to prevent accidents.

Setting Up a Practice Environment

Linny-senpai: First, let's create a practice directory. To avoid accidentally deleting important files, practicing in a dedicated location is the basic approach.
$ mkdir -p ~/practice/file-ops
$ cd ~/practice/file-ops
$ pwd
/home/user/practice/file-ops
Lina: What does the -p in mkdir -p mean?
Linny-senpai: It's an option that creates parent directories if they don't exist. Even if the practice directory doesn't exist, it creates practice/file-ops all at once.

cp: Copy Files

Linny-senpai: cp stands for "copy" and is the command to copy files.

Basic Usage

$ echo "Hello Linux" > original.txt
$ cp original.txt copy.txt
$ ls
copy.txt  original.txt
Lina: Oh, copy.txt was created!
Linny-senpai: The order is cp source destination. The original file remains unchanged.

Preventing Overwrite Accidents: -i Option

Linny-senpai: Here's the important part. cp will overwrite files with the same name without asking for confirmation.
Lina: Oh, so that's why my file...!
Linny-senpai: Exactly. So let's make it a habit to use the -i option. It stands for "interactive" and asks for confirmation before overwriting.
$ cp -i original.txt copy.txt
cp: overwrite 'copy.txt'?
Lina: Oh, it asked! y to overwrite, n to cancel, right?
Linny-senpai: That's right. Always use cp -i for safety.

Copying Directories: -r Option

Linny-senpai: When copying directories, you need the -r option. It stands for "recursive" and copies the entire contents.
$ mkdir mydir
$ touch mydir/file1.txt mydir/file2.txt
$ cp -r mydir mydir-backup
$ ls mydir-backup
file1.txt  file2.txt

Key Points for cp Command

  • cp source destination - Basic form
  • cp -i - Confirmation before overwrite (always use for safety)
  • cp -r - Copy directories

mv: Move and Rename Files

Linny-senpai: mv stands for "move". It can be used for both moving and renaming files.

Renaming Files

$ mv copy.txt renamed.txt
$ ls
mydir  mydir-backup  original.txt  renamed.txt
Lina: copy.txt became renamed.txt!
Linny-senpai: If the destination is a filename, mv "renames". If it's a directory, it "moves".

Moving Files

$ mv renamed.txt mydir/
$ ls mydir
file1.txt  file2.txt  renamed.txt
Lina: renamed.txt moved into mydir.

Preventing Overwrite Accidents: -i Option

Linny-senpai: Just like cp, mv overwrites files with the same name. So use the -i option.
$ mv -i original.txt mydir/

Important Note about mv

Since mv "moves" files, they disappear from the original location. Before panicking that a file is "gone", check the destination.

Key Points for mv Command

  • mv source destination - Move or rename
  • mv -i - Confirmation before overwrite (always use for safety)
  • If destination is a directory, it moves; if it's a filename, it renames

rm: Delete Files

Linny-senpai: rm stands for "remove" and is the command to delete files. This one requires the most caution.
Lina: Why is that?
Linny-senpai: Linux doesn't have a "Recycle Bin". Files deleted with rm basically cannot be recovered.
Lina: Yikes... I'll be careful.

Basic Usage

$ touch delete-me.txt
$ ls
delete-me.txt  mydir  mydir-backup
$ rm delete-me.txt
$ ls
mydir  mydir-backup

Confirmation Before Deletion: -i Option

Linny-senpai: The -i option is especially important for rm. It asks for confirmation before deleting.
$ touch test.txt
$ rm -i test.txt
rm: remove regular empty file 'test.txt'?
Lina: y to delete, n to cancel, right?
Linny-senpai: Yes. Beginners should always use rm -i.

Deleting Directories: -r Option

$ rm -r mydir-backup
$ ls
mydir
Lina: The directory is gone too.
Linny-senpai: The -r option deletes everything inside, so I recommend checking the contents with ls before using it.

Key Points for rm Command

  • rm filename - Delete a file
  • rm -i - Confirmation before deletion (always use)
  • rm -r - Delete directory with all contents
  • Don't use rm -rf

Mini Exercises

Linny-senpai: Now let's actually try what we learned today!

Exercise 1: Copy a File Safely

Task: Create a file called memo.txt and copy it to memo-backup.txt. Use the overwrite confirmation option.

Show Hint

Use echo to create the file, then use cp with the -i option to copy.

Show Solution
$ echo "Important memo" > memo.txt
$ cp -i memo.txt memo-backup.txt
$ ls
memo-backup.txt  memo.txt  mydir

Exercise 2: Move and Rename a File

Task: Move memo.txt into the mydir directory, then rename it to important.txt.

Show Hint

You can use mv twice, or combine moving and renaming in one command.

Show Solution
$ mv -i memo.txt mydir/
$ mv -i mydir/memo.txt mydir/important.txt
$ ls mydir
file1.txt  file2.txt  important.txt  original.txt  renamed.txt

Or in one command:

$ mv -i memo.txt mydir/important.txt

Exercise 3: Delete a File Safely

Task: Delete memo-backup.txt. Make sure confirmation appears before deletion.

Show Hint

Use the -i option with rm. When prompted, y deletes and n cancels.

Show Solution
$ rm -i memo-backup.txt
rm: remove regular file 'memo-backup.txt'? y
$ ls
mydir

Review

Lina: I see! If I use the -i option, it asks for confirmation before overwriting or deleting!
Linny-senpai: That's the most important point. If you make cp -i, mv -i, and rm -i a habit, you can prevent most accidents.
Lina: And rm needs extra caution because there's no recycle bin, right?
Linny-senpai: Exactly. Getting in the habit of checking with ls before operations makes it even safer.

Today's 3-Line Summary

  1. cp -i to copy files, -r to copy directories
  2. mv -i to move or rename files
  3. rm -i to delete (don't use rm -rf)

Next Reading