Bird
Raised Fist0
Linux CLIscripting~20 mins

File globbing (wildcards *, ?, []) in Linux CLI - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
File Globbing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
What files match this pattern?
Given a directory containing files:
report1.txt, report2.txt, report_final.txt, summary.txt, data.csv
What files will match the pattern report?.txt?
Areport1.txt, report2.txt, report_final.txt
Breport1.txt, report2.txt
Creport_final.txt
Dsummary.txt, data.csv
Attempts:
2 left
💡 Hint
The question mark matches exactly one character.
💻 Command Output
intermediate
1:30remaining
Which files match the pattern with brackets?
In a folder with files: data1.csv, data2.csv, data3.csv, dataA.csv, dataB.csv
Which files match the pattern data[12].csv?
Adata1.csv, data2.csv, data3.csv
Bdata3.csv
CdataA.csv, dataB.csv
Ddata1.csv, data2.csv
Attempts:
2 left
💡 Hint
Square brackets match exactly one character from the set inside.
📝 Syntax
advanced
2:00remaining
Identify the correct glob pattern for matching files ending with .log or .txt
Which of the following patterns correctly matches files that end with either .log or .txt?
A*.{log,txt}
B*.[log|txt]
C*.[log,txt]
D*.(log|txt)
Attempts:
2 left
💡 Hint
Brace expansion is used to match multiple extensions.
💻 Command Output
advanced
1:30remaining
What is the output of this glob pattern?
Given files: file1.txt, file2.txt, file10.txt, file20.txt, fileA.txt
What files match the pattern file?.txt?
Afile1.txt, file2.txt, fileA.txt
Bfile1.txt, file2.txt
Cfile10.txt, file20.txt
DfileA.txt
Attempts:
2 left
💡 Hint
The question mark matches exactly one character.
🧠 Conceptual
expert
2:30remaining
How many files match this complex pattern?
In a directory with files: a1.txt, a2.txt, a10.txt, b1.txt, b2.txt, c1.txt
How many files match the pattern [ab]?*.txt?
A3
B4
C5
D6
Attempts:
2 left
💡 Hint
The pattern matches files starting with 'a' or 'b', followed by at least one character, then any characters, ending with '.txt'.

Practice

(1/5)
1. Which wildcard pattern matches all files with any extension starting with log in their name?
easy
A. log* only matches files named exactly 'log'
B. log?
C. log[0-9]
D. log*

Solution

  1. Step 1: Understand the wildcard *

    The * matches zero or more characters, so log* matches any file starting with 'log' followed by anything or nothing.
  2. Step 2: Compare other options

    log? matches 'log' plus exactly one character, log[0-9] matches 'log' plus one digit, and the last option is incorrect about log*.
  3. Final Answer:

    log* -> Option D
  4. Quick Check:

    Wildcard * matches any characters [OK]
Hint: Use * to match any number of characters [OK]
Common Mistakes:
  • Confusing * with ? wildcard
  • Thinking * matches only one character
  • Misunderstanding [] as matching multiple characters
2. Which of the following is the correct pattern to match files named data1, data2, but not data10?
easy
A. data?
B. data*
C. data[1-9]
D. data??

Solution

  1. Step 1: Understand the pattern data[1-9]

    This matches 'data' followed by exactly one digit from 1 to 9, so it matches 'data1' and 'data2' but not 'data10'.
  2. Step 2: Check other patterns

    data? matches 'data' plus any one character (including letters), data* matches 'data' plus any characters (including 'data10'), and data?? matches 'data' plus exactly two characters (so it matches 'data10').
  3. Final Answer:

    data[1-9] -> Option C
  4. Quick Check:

    Square brackets match one character from set [OK]
Hint: Use [ ] to match one character from a range [OK]
Common Mistakes:
  • Using * which matches too many files
  • Using ? which matches any single character, not range
  • Confusing number of characters matched
3. Given files: file1.txt, file2.txt, fileA.txt, fileB.txt, what files does the pattern file?.txt match?
medium
A. file1.txt, file2.txt
B. file1.txt, file2.txt, fileA.txt, fileB.txt
C. fileA.txt, fileB.txt
D. file.txt

Solution

  1. Step 1: Understand the pattern file?.txt

    The ? matches exactly one character, so it matches any file named 'file' plus one character plus '.txt'.
  2. Step 2: Check which files match

    All files with names 'file1.txt', 'file2.txt', 'fileA.txt', and 'fileB.txt' have exactly one character after 'file' before '.txt', so all match.
  3. Final Answer:

    file1.txt, file2.txt, fileA.txt, fileB.txt -> Option B
  4. Quick Check:

    ? matches exactly one character [OK]
Hint: Use ? to match exactly one character [OK]
Common Mistakes:
  • Thinking ? matches zero or multiple characters
  • Confusing ? with *
  • Ignoring file extension in pattern
4. You want to list files named report1, report2, and report3 only. Which pattern is incorrect?
medium
A. report*
B. report?
C. report[1-3]
D. report[123]

Solution

  1. Step 1: Analyze pattern report*

    This matches 'report' plus any characters, so it matches more than just 'report1', 'report2', and 'report3'. It includes 'report10', 'report_final', etc.
  2. Step 2: Check other patterns

    report[1-3] and report[123] match exactly one character from 1,2,3 after 'report'. report? matches 'report' plus any one character, which includes 'report1', 'report2', 'report3' but also others with one character.
  3. Final Answer:

    report* -> Option A
  4. Quick Check:

    * matches too many files [OK]
Hint: Use [] to limit characters, * matches too many [OK]
Common Mistakes:
  • Using * when exact matches needed
  • Assuming ? limits to digits only
  • Not realizing [] matches one character only
5. You have files: img01.png, img02.png, img10.png, img20.png. Which pattern matches only files with numbers from 01 to 09?
hard
A. img0[1-9].png
B. img[0-9][1-9].png
C. img??.png
D. img[01-09].png

Solution

  1. Step 1: Understand pattern img0[1-9].png

    This matches 'img0' plus one digit from 1 to 9, then '.png'. So it matches 'img01.png' to 'img09.png'.
  2. Step 2: Check other patterns

    img[0-9][1-9].png matches any two digits, including 'img10.png' and 'img20.png'. img??.png matches any two characters after 'img', so all files. img[01-09].png is invalid syntax because ranges like '01-09' are not valid inside [].
  3. Final Answer:

    img0[1-9].png -> Option A
  4. Quick Check:

    Use 0 then [1-9] for numbers 01-09 [OK]
Hint: Use fixed digit then range in [] for number ranges [OK]
Common Mistakes:
  • Using invalid range syntax inside []
  • Using ?? which matches any two characters
  • Not fixing leading zero for 01-09
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