Bird
Raised Fist0
Linux CLIscripting~15 mins

find command basics in Linux CLI - Mini Project: Build & Apply

Choose your learning style10 modes available
Find Command Basics
📖 Scenario: You are organizing files on your computer. You want to find specific files quickly using the find command in Linux.
🎯 Goal: Learn how to use the find command to search for files by name in a directory.
📋 What You'll Learn
Use the find command to search files
Search files by exact name
Search files in a specific directory
Display the full path of found files
💡 Why This Matters
🌍 Real World
Finding files quickly in large folders is common when managing documents, code, or media files.
💼 Career
System administrators and developers often use the <code>find</code> command to locate files for backup, cleanup, or deployment tasks.
Progress0 / 4 steps
1
Create a test directory with files
Create a directory called testdir and inside it create three files named file1.txt, file2.txt, and notes.txt using the mkdir and touch commands.
Linux CLI
Hint

Use mkdir testdir to create the folder and touch to create empty files.

2
Set the search directory variable
Create a variable called search_dir and set it to the path of the testdir directory you created.
Linux CLI
Hint

Use search_dir=testdir to store the testdir directory path.

3
Use find command to search for a file
Use the find command with $search_dir to find the file named file2.txt.
Linux CLI
Hint

Use find "$search_dir" -name "file2.txt" to find the file by name.

4
Display the found file path
Run the script to display the full path of file2.txt found by the find command.
Linux CLI
Hint

The output should show the full path ending with file2.txt.

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