How to Copy Directories Recursively in Linux

How to Copy Directories Recursively in Linux

Hey there! Welcome back to ProgramGuru.org. In this beginner-friendly Linux tutorial, we’re going to learn a very useful command—how to copy entire directories and everything inside them using the terminal.

Let’s say you have a folder filled with files and maybe even subfolders, and you want to make a complete copy of it somewhere else. That’s exactly what we mean by "copying a directory recursively."

🔧 Step 1: Understand the cp -r Command

In Linux, the cp command is used to copy files. But by default, it doesn't copy directories. So we add the -r option, which stands for "recursive."

cp -r [source_directory] [destination]

This tells Linux: "Please copy everything in the source directory, including its contents, subdirectories, and files, into the destination."

📁 Example 1: Copying a folder to your home directory

Let’s say we have a directory called project in the current folder, and we want to copy it to our home directory.

cp -r project ~/

This will create a copy of project inside your home folder.

📁 Example 2: Copy a folder and rename it

What if you want to copy the directory but give the copy a different name?

cp -r project project_backup
This creates a new folder named project_backup that’s an exact copy of project.

✅ Pro Tips

  • Use -v (verbose) to see what files are being copied:
  • cp -rv project project_backup
  • Make sure you have the right permissions to read from the source and write to the destination.
  • If you're copying to a system folder, you might need sudo.

🧪 Try It Yourself

Create a test folder with some dummy files and try copying it around using different names and paths. Practice makes perfect!

📝 Recap

  • Use cp -r to copy directories and their contents
  • You can rename the copy or move it to a different location
  • Add -v to see what’s happening

That’s it! Now you know how to copy directories recursively in Linux. Stick with us on ProgramGuru.org for more beginner-friendly Linux tutorials.