📖 Scenario: You are managing important files on your Linux computer. To keep your data safe, you want to create a simple backup script that copies files from one folder to another. This way, if something happens to your original files, you have a copy saved.
🎯 Goal: Build a small script that copies files from a source directory to a backup directory using Linux command line commands.
📋 What You'll Learn
Create a variable for the source directory path
Create a variable for the backup directory path
Use a command to copy all files from the source to the backup directory
Print a message confirming the backup is complete
💡 Why This Matters
🌍 Real World
Backing up files regularly is important to avoid data loss from accidents or hardware failure.
💼 Career
System administrators and IT support staff often write backup scripts to automate data protection tasks.
Progress0 / 4 steps
1
Set up source directory variable
Create a variable called source_dir and set it to "/home/user/documents".
Linux CLI
Hint
Use the syntax variable_name="value" to create a variable in bash.
2
Set up backup directory variable
Create a variable called backup_dir and set it to "/home/user/backup".
Linux CLI
Hint
Use the same variable assignment style as in Step 1.
3
Copy files from source to backup
Use the cp command with the -r option to copy all files and folders from $source_dir to $backup_dir.
Linux CLI
Hint
The cp -r command copies directories recursively. Use quotes around variables to handle spaces.
4
Print backup completion message
Write a echo command to print "Backup completed successfully!".
Linux CLI
Hint
Use echo "Your message" to print text in bash.
Practice
(1/5)
1. Which of the following best describes the main purpose of a backup in Linux?
easy
A. To delete old files to free up space
B. To install new software updates automatically
C. To speed up the computer by cleaning temporary files
D. To save copies of important files in a safe place
Solution
Step 1: Understand what a backup is
A backup is a copy of important data saved separately to protect against loss.
Step 2: Match the description to the options
Only To save copies of important files in a safe place describes saving copies in a safe place, which is the purpose of backups.
Final Answer:
To save copies of important files in a safe place -> Option D
Quick Check:
Backup = Save copies safely [OK]
Hint: Backups always mean saving copies, not deleting files [OK]
Common Mistakes:
Confusing backup with deleting files
Thinking backup speeds up the system
Mixing backup with software updates
2. Which command syntax correctly copies a directory and its contents to a backup folder?
easy
A. cp -r /home/user/docs /backup/docs
B. cp /home/user/docs /backup/docs
C. cp -d /home/user/docs /backup/docs
D. cp -x /home/user/docs /backup/docs
Solution
Step 1: Identify the correct option to copy directories recursively
The -r option in cp copies directories and their contents recursively.
Step 2: Check other options for correctness
The plain cp lacks -r, so it won't copy directories properly. The options with -d and -x use invalid or unrelated flags.
Final Answer:
cp -r /home/user/docs /backup/docs -> Option A
Quick Check:
Copy directory = cp -r [OK]
Hint: Use cp -r to copy folders with all files inside [OK]
Common Mistakes:
Forgetting the -r flag for directories
Using wrong flags like -d or -x
Assuming cp copies folders without options
3. What will be the output of this command if the source directory has files and the destination is empty?
rsync -av /home/user/data/ /backup/data/
medium
A. Only lists files without copying them
B. Copies all files and folders from /home/user/data to /backup/data preserving attributes
C. Deletes all files in /backup/data and leaves it empty
D. Shows an error because /backup/data does not exist
Solution
Step 1: Understand rsync options -a and -v
The -a option means archive mode (copy recursively and preserve attributes), and -v means verbose (show progress).
Step 2: Analyze command behavior
Since /backup/data exists and is empty, rsync copies all files and folders from source to destination preserving attributes.
Final Answer:
Copies all files and folders from /home/user/data to /backup/data preserving attributes -> Option B
Quick Check:
rsync -av copies files with details [OK]
Hint: rsync -av copies and shows details, no deletion by default [OK]
What is the main problem with this backup strategy?
medium
A. It deletes original files after copying, risking data loss
B. It does not copy hidden files
C. It uses the wrong command to copy files
D. It will fail because /backup/docs does not exist
Solution
Step 1: Analyze the script commands
The script copies /home/user/docs to /backup/docs, then deletes all files inside /home/user/docs.
Step 2: Identify risk in deleting original files
Deleting original files after copying is risky if the copy failed or is incomplete, causing data loss.
Final Answer:
It deletes original files after copying, risking data loss -> Option A
Quick Check:
Deleting originals after backup = risk [OK]
Hint: Never delete originals immediately after backup without verification [OK]
Common Mistakes:
Assuming cp misses hidden files (it copies them)
Thinking /backup/docs must exist (cp creates it)
Ignoring risk of deleting original data
5. You want to automate daily backups of /home/user/projects to /mnt/backup using tar. Which command correctly creates a compressed backup file with the current date in its name?
hard
A. tar -czf /home/user/projects /mnt/backup/projects-$(date +%F).tar.gz
B. tar -cf /mnt/backup/projects.tar.gz /home/user/projects
C. tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects
D. tar -xzf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects
Solution
Step 1: Understand tar options for creating compressed archives
-c creates an archive, -z compresses with gzip, and -f specifies the output file.
Step 2: Check command correctness
tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects correctly creates a gzip compressed archive named with the current date in /mnt/backup from /home/user/projects.
Final Answer:
tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects -> Option C
Quick Check:
tar -czf + date = compressed dated backup [OK]
Hint: Use tar -czf with $(date +%F) for dated compressed backups [OK]
Common Mistakes:
Using -xzf which extracts instead of creates
Swapping source and destination paths
Omitting compression flag -z
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.