📖 Scenario: You are managing files on a Linux system. Sometimes you need to find files that were changed recently to clean up or back up important data.
🎯 Goal: Learn how to use the find command to locate files based on their modification time.
📋 What You'll Learn
Create a directory with some files
Set a time threshold variable
Use the find command with the -mtime option
Display the list of files modified within the threshold
💡 Why This Matters
🌍 Real World
System administrators often need to find recently changed files to back up or clean up data.
💼 Career
Knowing how to use <code>find</code> with modification time is essential for Linux system management and scripting automation.
Progress0 / 4 steps
1
Create a directory and files
Create a directory called testdir and inside it create three empty files named file1.txt, file2.txt, and file3.txt.
Linux CLI
Hint
Use mkdir to make a directory and touch to create empty files.
2
Set a modification time threshold
Create a variable called days and set it to 1 to represent files modified within the last 1 day.
Linux CLI
Hint
Use days=1 to set the variable.
3
Use find command with modification time
Use the find command to list files in testdir that were modified within the last $days days. Use -mtime -$days option.
Linux CLI
Hint
The -mtime -1 option finds files modified less than 1 day ago.
4
Display the found files
Print the output of the find command that lists files modified within the last $days days.
Linux CLI
Hint
Just run the find command to see the list of files.
Practice
(1/5)
1. What does the command find . -mtime -3 do in Linux?
easy
A. Finds files modified within the last 3 days
B. Finds files modified exactly 3 days ago
C. Finds files modified more than 3 days ago
D. Finds files modified more than 3 hours ago
Solution
Step 1: Understand the meaning of -mtime
The -mtime option in find searches files by modification time in days.
Step 2: Interpret the negative number -3
A negative number means files modified less than that many days ago, so -3 means within the last 3 days.
Final Answer:
Finds files modified within the last 3 days -> Option A
Quick Check:
-mtime -3 means modified less than 3 days ago [OK]
Hint: Negative -mtime means files modified within last N days [OK]
Common Mistakes:
Confusing -mtime -3 with exactly 3 days ago
Thinking -mtime -3 means more than 3 days ago
Mixing hours with days in -mtime
2. Which of the following is the correct syntax to find files modified exactly 5 days ago?
easy
A. find . -mtime +5
B. find . -mtime 5
C. find . -mtime -5
D. find . -mmin 5
Solution
Step 1: Recall the meaning of -mtime with positive number
-mtime 5 finds files modified exactly 5 days ago (between 5 and 6 days).
Step 2: Check other options
-mtime +5 means more than 5 days ago, -mtime -5 means less than 5 days ago, and -mmin 5 searches by minutes, not days.
Final Answer:
find . -mtime 5 -> Option B
Quick Check:
Exact days use positive number without + or - [OK]
Hint: Exact days use plain number with -mtime (no + or -) [OK]
Common Mistakes:
Using +5 instead of 5 for exact days
Using -5 to mean exactly 5 days ago
Confusing -mtime with -mmin
3. What will be the output of this command if run in a directory with files modified 1, 3, 5, and 7 days ago? find . -mtime +4
medium
A. ./file_modified_1_day_ago
./file_modified_3_days_ago
B. ./file_modified_3_days_ago
./file_modified_5_days_ago
C. No files found
D. ./file_modified_5_days_ago
./file_modified_7_days_ago
Solution
Step 1: Understand +4 with -mtime
-mtime +4 finds files modified more than 4 days ago (5 days or older).
Step 2: Identify files matching condition
Files modified 5 and 7 days ago match, so they will be listed.
Final Answer:
./file_modified_5_days_ago
./file_modified_7_days_ago -> Option D
Quick Check:
+4 means older than 4 days [OK]
Hint: Use +N to find files older than N days [OK]
Common Mistakes:
Including files modified less than or equal to 4 days ago
Confusing +4 with -4
Expecting no output when files exist
4. You wrote this command to find files modified within the last 2 days: find /data -mtime 2 But it returns files modified exactly 2 days ago, not within 2 days. How to fix it?
medium
A. Use find /data -mtime 0
B. Change to find /data -mtime +2
C. Change to find /data -mtime -2
D. Add -mmin -2880 instead
Solution
Step 1: Understand what -mtime 2 means
-mtime 2 finds files modified exactly 2 days ago (between 2 and 3 days).
Step 2: Use negative number for 'within last N days'
To find files modified less than 2 days ago, use -mtime -2.
Final Answer:
Change to find /data -mtime -2 -> Option C
Quick Check:
Negative -mtime means less than N days [OK]
Hint: Use -mtime -N for files modified within last N days [OK]
Common Mistakes:
Using positive number for 'within' instead of exact days
Using +2 which means older than 2 days
Confusing minutes and days options
5. You want to delete files in /backup that were modified more than 10 days ago but keep files modified within 10 days. Which command correctly does this safely?
hard
A. find /backup -mtime +10 -delete
B. find /backup -mtime +10 -exec rm {} \;
C. find /backup -mtime 10 -delete
D. find /backup -mtime -10 -exec rm {} \;
Solution
Step 1: Identify files older than 10 days
-mtime +10 selects files modified more than 10 days ago.
Step 2: Use safe deletion option
-delete deletes files directly; it's safer and simpler than -exec rm which can be error-prone.
Step 3: Check other options
-mtime -10 deletes recent files (wrong), -mtime 10 deletes files exactly 10 days old (not older), and -exec rm works but less safe than -delete.
Final Answer:
find /backup -mtime +10 -delete -> Option A
Quick Check:
Use +N with -delete to remove files older than N days [OK]
Hint: Use -mtime +N with -delete to remove files older than N days [OK]
Common Mistakes:
Using -mtime -10 deletes recent files instead of old
Using -mtime 10 deletes only files exactly 10 days old
Using -exec rm without care can cause errors
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.