Bird
Raised Fist0
Bash Scriptingscripting~5 mins

File existence checks in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
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
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
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
Which test flag would you use to check if a file is executable?
A-x
B-r
C-w
D-e
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
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

      1. 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.
      2. Step 2: Verify the command structure

        The command if [ -e data.txt ]; then ... fi is the correct syntax in bash for this check.
      3. Final Answer:

        if [ -e data.txt ]; then echo "File exists"; fi -> Option A
      4. 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

      1. Step 1: Identify the test for regular file

        The -f option checks if the file exists and is a regular file (not directory).
      2. Step 2: Confirm the syntax

        The syntax if [ -f report.log ]; then ... fi correctly checks for a regular file.
      3. Final Answer:

        if [ -f report.log ]; then echo "Exists"; fi -> Option B
      4. 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

      1. Step 1: Understand the condition

        The condition [ -e myfile.txt ] checks if the file exists.
      2. Step 2: Evaluate the file existence

        Since myfile.txt does not exist, the condition is false, so the else branch runs.
      3. Final Answer:

        Not Found -> Option A
      4. 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

      1. Step 1: Check if statement syntax

        Bash requires the then keyword after the condition in an if statement.
      2. Step 2: Identify missing part

        The snippet lacks then after [ -e config.cfg ], causing a syntax error.
      3. Final Answer:

        Missing then keyword after condition -> Option D
      4. 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

      1. Step 1: Check file existence correctly

        Use [ -e "backup.tar.gz" ] to check if the file exists, quoting filename to handle spaces.
      2. Step 2: Execute correct commands based on condition

        If file exists, print "Backup found"; else create empty file with touch.
      3. Final Answer:

        if [ -e "backup.tar.gz" ]; then echo "Backup found"; else touch backup.tar.gz; fi -> Option C
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard