What command checks if a file exists in a bash script?
Use the test command with -e flag: if [ -e filename ]; then checks if the file named 'filename' exists.
Click to reveal answer
beginner
What does the -f flag check in a bash file test?
The -f flag checks if the file exists and is a regular file (not a directory or special file).
Click to reveal answer
beginner
How do you check if a directory exists in bash?
Use -d flag: if [ -d directoryname ]; then checks if 'directoryname' exists and is a directory.
Click to reveal answer
intermediate
What is the difference between -e and -f in bash file tests?
-e checks if a file or directory exists. -f checks if a regular file exists (not directory).
Click to reveal answer
beginner
Write a simple bash script snippet that prints 'File found' if a file named 'data.txt' exists.
if [ -e data.txt ]; then
echo "File found"
else
echo "File not found"
fi
Click to reveal answer
Which bash test flag checks if a file exists regardless of type?
A-f
B-e
C-d
D-x
✗ Incorrect
The -e flag checks if a file or directory exists, regardless of type.
What does the -d flag check in bash?
AIf a file is executable
BIf a regular file exists
CIf a directory exists
DIf a file is empty
✗ Incorrect
The -d flag checks if the given path exists and is a directory.
What will this script print if 'myfile' does not exist?
if [ -f myfile ]; then echo "Found"; else echo "Not found"; fi
AFound
BNothing
CError
DNot found
✗ Incorrect
Since 'myfile' does not exist, the condition fails and 'Not found' is printed.
Which test flag would you use to check if a file is executable?
A-x
B-r
C-w
D-e
✗ Incorrect
The -x flag checks if the file is executable.
What does this script check?
if [ -e /tmp ]; then echo "Exists"; fi
AIf /tmp exists (file or directory)
BIf /tmp is a directory
CIf /tmp is a regular file
DIf /tmp is executable
✗ Incorrect
The -e flag checks if the path exists, whether file or directory.
Explain how to check if a file exists in a bash script and what flags you can use for different file types.
Think about the test command and its flags.
You got /4 concepts.
Write a bash script snippet that checks if a directory named 'backup' exists and prints a message accordingly.
Use the -d flag inside an if condition.
You got /4 concepts.
Practice
(1/5)
1. Which command correctly checks if a file named data.txt exists in a bash script?
easy
A. if [ -e data.txt ]; then echo "File exists"; fi
B. if ( -e data.txt ); then echo "File exists"; fi
C. if [[ exists data.txt ]]; then echo "File exists"; fi
D. if test -f data.txt then echo "File exists"; fi
Solution
Step 1: Understand the correct syntax for file existence check
The test command with square brackets and -e checks if a file or directory exists.
Step 2: Verify the command structure
The command if [ -e data.txt ]; then ... fi is the correct syntax in bash for this check.
Final Answer:
if [ -e data.txt ]; then echo "File exists"; fi -> Option A
Quick Check:
Use [ -e filename ] to check existence [OK]
Hint: Use [ -e filename ] inside if for existence check [OK]
Common Mistakes:
Using parentheses instead of square brackets
Using incorrect test operators like 'exists'
Missing semicolon or then keyword
2. Which of the following is the correct syntax to check if a file report.log exists and is a regular file in bash?
easy
A. if [ -d report.log ]; then echo "Exists"; fi
B. if [ -f report.log ]; then echo "Exists"; fi
C. if [ -e report.log ]; then echo "Exists"; fi
D. if test -x report.log; then echo "Exists"; fi
Solution
Step 1: Identify the test for regular file
The -f option checks if the file exists and is a regular file (not directory).
Step 2: Confirm the syntax
The syntax if [ -f report.log ]; then ... fi correctly checks for a regular file.
Final Answer:
if [ -f report.log ]; then echo "Exists"; fi -> Option B
Quick Check:
-f checks regular file existence [OK]
Hint: Use [ -f filename ] to check regular file existence [OK]
Common Mistakes:
Using -d which checks for directories
Using -x which checks for executable permission
Confusing -e (exists) with -f (regular file)
3. What will be the output of this script if myfile.txt does not exist?
if [ -e myfile.txt ]; then
echo "Found"
else
echo "Not Found"
fi
medium
A. Not Found
B. Syntax error
C. Found
D. No output
Solution
Step 1: Understand the condition
The condition [ -e myfile.txt ] checks if the file exists.
Step 2: Evaluate the file existence
Since myfile.txt does not exist, the condition is false, so the else branch runs.
Final Answer:
Not Found -> Option A
Quick Check:
File missing triggers else branch [OK]
Hint: If file missing, else branch runs [OK]
Common Mistakes:
Assuming output is 'Found' even if file missing
Confusing -e with other test operators
Missing else branch handling
4. Identify the error in this bash snippet that checks if config.cfg exists:
if [ -e config.cfg ]
echo "Exists"
fi
medium
A. Echo command syntax is wrong
B. Wrong test operator -e used
C. Missing closing bracket ]
D. Missing then keyword after condition
Solution
Step 1: Check if statement syntax
Bash requires the then keyword after the condition in an if statement.
Step 2: Identify missing part
The snippet lacks then after [ -e config.cfg ], causing a syntax error.
Final Answer:
Missing then keyword after condition -> Option D
Quick Check:
if needs then after condition [OK]
Hint: Always put then after if condition [OK]
Common Mistakes:
Omitting then keyword
Forgetting semicolon before then on same line
Misplacing brackets
5. You want to write a bash script that checks if a file named backup.tar.gz exists, and if it does, prints "Backup found", otherwise creates an empty file with that name. Which script snippet correctly does this?
hard
A. if [ -e backup.tar.gz ]; then touch backup.tar.gz; else echo "Backup found"; fi
B. if [ -f backup.tar.gz ]; then touch backup.tar.gz; else echo "Backup found"; fi
C. if [ -e "backup.tar.gz" ]; then echo "Backup found"; else touch backup.tar.gz; fi
D. if test -d backup.tar.gz; then echo "Backup found"; else touch backup.tar.gz; fi
Solution
Step 1: Check file existence correctly
Use [ -e "backup.tar.gz" ] to check if the file exists, quoting filename to handle spaces.
Step 2: Execute correct commands based on condition
If file exists, print "Backup found"; else create empty file with touch.
Final Answer:
if [ -e "backup.tar.gz" ]; then echo "Backup found"; else touch backup.tar.gz; fi -> Option C
Quick Check:
Check existence then else create file [OK]
Hint: Quote filenames and use if-else for existence and creation [OK]
Common Mistakes:
Swapping then and else commands
Using -d to check regular files
Not quoting filenames with spaces
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.