2. Which of the following is the correct syntax to find all regular files named report.txt in the current directory and its subdirectories?
easy
A. find . -type f -name report.txt
B. find . -name "report.txt" -type d
C. find . -type f -name "report.txt"
D. find / -type f -name report.txt
Solution
Step 1: Understand the syntax for find
The correct syntax requires the path (here . for current directory), the type -type f for regular files, and the name pattern with quotes -name "report.txt" to match the exact file name.
Step 2: Check each option
find . -type f -name report.txt misses quotes around the name, which can cause issues with special characters. find . -name "report.txt" -type d searches for directories (-type d) not files. find / -type f -name report.txt searches from root /, not current directory. find . -type f -name "report.txt" is correct with quotes and correct type.
Final Answer:
find . -type f -name "report.txt" -> Option C
Quick Check:
Quotes + correct type + current dir = find . -type f -name "report.txt" [OK]
Hint: Always quote the name pattern to avoid shell issues [OK]
Common Mistakes:
Omitting quotes around the name
Using wrong type flag (-type d instead of -type f)
Searching from wrong directory
3. What will be the output of the command find /tmp -type f -size +1M -name "*.log" assuming there are two files: /tmp/app.log (500K) and /tmp/error.log (2M)?
medium
A. /tmp/app.log
/tmp/error.log
B. /tmp/error.log
C. /tmp/app.log
D. " (no output)
Solution
Step 1: Understand the command filters
The command searches in /tmp for regular files (-type f) with size greater than 1 megabyte (-size +1M) and names ending with .log (-name "*.log").
Step 2: Apply filters to given files
/tmp/app.log is 500K, which is less than 1M, so excluded. /tmp/error.log is 2M, which matches size and name filters, so included.
Final Answer:
/tmp/error.log -> Option B
Quick Check:
Size +1M and name *.log = /tmp/error.log [OK]
Hint: Size +1M means files larger than 1 megabyte [OK]
Common Mistakes:
Including files smaller than 1M
Ignoring the name pattern
Confusing +1M with exactly 1M
4. You run the command find . -type f -name *.txt -size -10k but get an error or unexpected results. What is the likely problem?
medium
A. The command needs sudo to run
B. Wrong size flag; should be +10k instead of -10k
C. Using -type f instead of -type d
D. Missing quotes around *.txt causing shell expansion
Solution
Step 1: Identify the issue with -name pattern
The pattern *.txt without quotes is expanded by the shell before find runs, causing unexpected behavior or errors.
Step 2: Correct usage with quotes
Enclosing *.txt in quotes like "*.txt" prevents shell expansion and lets find correctly match file names.
Final Answer:
Missing quotes around *.txt causing shell expansion -> Option D
Quick Check:
Always quote patterns in -name [OK]
Hint: Quote wildcards in -name to avoid shell expansion [OK]
Common Mistakes:
Not quoting the name pattern
Confusing size flags + and -
Using wrong type flag
5. You want to find all directories named backup larger than 100MB inside /var. Which command correctly achieves this?
hard
A. find /var -type d -name "backup" -size +100M -exec du -sh {} \;
B. find /var -type d -name "backup" -size +100M
C. find /var -type d -name "backup" -exec du -sh {} \; | awk '$1 > 100M'
D. find /var -type d -name "backup" -size +100M -size +100M
Solution
Step 1: Understand find limitations on directory size
The -size option measures file size, but for directories it measures disk usage metadata, not total content size.
Step 2: Use -exec du -sh to get actual directory size
find /var -type d -name "backup" -size +100M -exec du -sh {} \; uses -exec du -sh {} to show human-readable size of each directory found, which helps verify size over 100MB.
Step 3: Confirm correct filtering
find /var -type d -name "backup" -size +100M incorrectly uses -size +100M on directories which is unreliable. find /var -type d -name "backup" -exec du -sh {} \; | awk '$1 > 100M' tries to filter with awk but size format is not numeric only. find /var -type d -name "backup" -size +100M -size +100M repeats -size +100M unnecessarily.
Final Answer:
find /var -type d -name "backup" -size +100M -exec du -sh {} \; -> Option A
Quick Check:
Use -exec du -sh to check directory sizes [OK]
Hint: Use du with -exec to measure directory size [OK]
Common Mistakes:
Relying on -size for directory content size
Not quoting the name pattern
Repeating size filters unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.