Bird
Raised Fist0
Linux CLIscripting~5 mins

find command basics in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you need to search for files or folders on your computer quickly. The find command helps you look through folders and find exactly what you want by name, type, or other details.
When you want to find all files with a certain name in your documents folder.
When you need to locate all images in a directory and its subdirectories.
When you want to find files modified in the last day to check recent changes.
When you want to delete all temporary files in a folder safely.
When you want to list all directories inside a specific folder.
Commands
This command searches inside /home/user/Documents and all its subfolders for files named exactly report.txt.
Terminal
find /home/user/Documents -name "report.txt"
Expected OutputExpected
/home/user/Documents/work/report.txt /home/user/Documents/personal/report.txt
→
-name - Search files by exact name pattern.
This command finds all files (-type f) ending with .jpg inside /home/user/Pictures and its subfolders.
Terminal
find /home/user/Pictures -type f -name "*.jpg"
Expected OutputExpected
/home/user/Pictures/vacation/photo1.jpg /home/user/Pictures/events/birthday.jpg
→
-type f - Limits search to files only.
→
-name - Search files matching the pattern.
This command finds files in /tmp modified in the last 1 day (-mtime -1).
Terminal
find /tmp -type f -mtime -1
Expected OutputExpected
/tmp/tempfile1 /tmp/logs/recent.log
→
-mtime - Find files modified less than 1 day ago.
This command lists all directories (-type d) inside /home/user/Downloads and its subfolders.
Terminal
find /home/user/Downloads -type d
Expected OutputExpected
/home/user/Downloads /home/user/Downloads/music /home/user/Downloads/music/rock
→
-type d - Limits search to directories only.
Key Concept

If you remember nothing else from this pattern, remember: find searches folders recursively and filters results by conditions like name or type.

Common Mistakes
Using find without quotes around the name pattern
Shell may expand wildcards before find runs, causing wrong or no results.
Always put the pattern in quotes, like -name "*.txt".
Not specifying -type when looking for files or directories
find returns both files and directories, which may confuse results.
Use -type f for files or -type d for directories to get precise results.
Running find in a very large folder without limits
It can take a long time and produce too many results.
Narrow search by folder path, name, or modification time to speed it up.
Summary
Use find to search folders and subfolders for files or directories by name or type.
Put name patterns in quotes to avoid shell expansion issues.
Use -type to specify if you want files (-type f) or directories (-type d).
Use -mtime to find files by modification time.
Check results with simple commands before using find for actions like delete.

Practice

(1/5)
1. What does the find command do in Linux?
easy
A. Copies files from one folder to another
B. Deletes files permanently
C. Searches for files and directories based on criteria
D. Displays the contents of a file

Solution

  1. Step 1: Understand the purpose of the find command

    The find command is used to locate files and directories by searching through folders and subfolders.
  2. Step 2: Compare options

    Options B, C, and D describe other commands like rm, cp, and cat, not find.
  3. Final Answer:

    Searches for files and directories based on criteria -> Option C
  4. Quick Check:

    find = search files [OK]
Hint: Remember: find means locate files/folders fast [OK]
Common Mistakes:
  • Confusing find with delete or copy commands
  • Thinking find edits files
  • Assuming find shows file contents
2. Which of the following is the correct syntax to find all files named notes.txt in the current directory and its subdirectories?
easy
A. find . -name notes.txt
B. find -name notes.txt .
C. find notes.txt -name .
D. find . notes.txt -name

Solution

  1. Step 1: Recall find command syntax

    The correct syntax is: find [path] [options]. Here, '.' means current directory, '-name' specifies the filename.
  2. Step 2: Check each option

    find . -name notes.txt matches the correct syntax. Options A, B, and D have misplaced arguments or options.
  3. Final Answer:

    find . -name notes.txt -> Option A
  4. Quick Check:

    find . -name filename [OK]
Hint: Path first, then options like -name [OK]
Common Mistakes:
  • Putting filename before path
  • Missing dot for current directory
  • Wrong order of options and arguments
3. What will be the output of the command find /tmp -type d -name "test" if there is a directory named test inside /tmp?
medium
A. It will list the full path of the directory named test inside /tmp
B. It will list all files named test inside /tmp
C. It will delete the directory named test inside /tmp
D. It will show an error because of incorrect syntax

Solution

  1. Step 1: Understand the command options

    /tmp is the search path, -type d means only directories, -name "test" looks for name 'test'.
  2. Step 2: Predict output

    The command will print the full path of any directory named 'test' inside /tmp and its subfolders.
  3. Final Answer:

    It will list the full path of the directory named test inside /tmp -> Option A
  4. Quick Check:

    find with -type d lists directories [OK]
Hint: -type d means directories only [OK]
Common Mistakes:
  • Confusing -type d with files
  • Expecting deletion instead of listing
  • Assuming syntax error without checking
4. You run find /home/user -name '*.txt' but get no results even though there are .txt files. What is the most likely problem?
medium
A. The quotes prevent the shell from expanding the wildcard
B. The path /home/user does not exist
C. The command should use -type d instead of -name
D. The wildcard * is not supported by find

Solution

  1. Step 1: Understand wildcard usage in find

    Using quotes around '*.txt' prevents the shell from expanding the wildcard, which is correct because find handles the pattern matching itself.
  2. Step 2: Identify common mistake

    With correct syntax, no results despite .txt files existing suggests the path /home/user does not exist or is inaccessible.
  3. Final Answer:

    The path /home/user does not exist -> Option B
  4. Quick Check:

    ls /home/user [OK]
Hint: Verify path exists before searching [OK]
Common Mistakes:
  • Removing quotes and letting shell expand
  • Using -type d for files
  • Wrong path assumption
5. How can you use the find command to locate all files larger than 1MB in the /var/log directory and delete them safely after confirmation?
hard
A. find /var/log -type d -size +1M -ok rm {} \;
B. find /var/log -type f -size +1M -delete
C. find /var/log -size 1M -exec rm {} \;
D. find /var/log -type f -size +1M -ok rm {} \;

Solution

  1. Step 1: Identify criteria for files larger than 1MB

    -type f means files, -size +1M means size greater than 1 megabyte.
  2. Step 2: Choose safe deletion method

    -ok rm {} \; asks for confirmation before deleting each file, which is safer than -delete or -exec rm without confirmation.
  3. Step 3: Check options

    find /var/log -type f -size +1M -ok rm {} \; uses -ok for confirmation, correct. find /var/log -type f -size +1M -delete deletes without confirmation. find /var/log -size 1M -exec rm {} \; uses wrong size syntax and no confirmation. find /var/log -type d -size +1M -ok rm {} \; searches directories, not files.
  4. Final Answer:

    find /var/log -type f -size +1M -ok rm {} \; -> Option D
  5. Quick Check:

    -ok asks confirmation before delete [OK]
Hint: Use -ok for safe delete with confirmation [OK]
Common Mistakes:
  • Using -delete without confirmation
  • Wrong size syntax
  • Searching directories instead of files
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard