Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Temporary files (mktemp) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the mktemp command in bash scripting?
The mktemp command creates a unique temporary file or directory safely, avoiding name conflicts and security issues.
Click to reveal answer
beginner
How does mktemp ensure the temporary file name is unique?
mktemp generates a random string in the file name template, replacing placeholders like XXXXXX to create a unique name.
Click to reveal answer
beginner
Write a simple mktemp command to create a temporary file with prefix tempfile_.
Use: mktemp tempfile_XXXXXX. This creates a file like /tmp/tempfile_a1b2c3 in the system's temporary directory (usually /tmp).
Click to reveal answer
intermediate
Why should you use mktemp instead of manually creating temporary files with fixed names?
Manually creating fixed-name temp files risks overwriting files or security issues. mktemp avoids these by making unique, safe names.
Click to reveal answer
beginner
How can you create a temporary directory using mktemp?
Use mktemp -d to create a unique temporary directory instead of a file.
Click to reveal answer
What does the XXXXXX part in the mktemp template represent?
AA placeholder replaced by random characters
BA fixed string in the filename
CThe file extension
DThe directory path
Which option creates a temporary directory with mktemp?
A-f
B-t
C-r
D-d
Why is using mktemp safer than creating temp files with fixed names?
AIt creates files faster
BIt automatically deletes files
CIt avoids overwriting and security risks
DIt uses less disk space
What will mktemp tempfile_XXXXXX do?
ACreate a file named exactly 'tempfile_XXXXXX'
BCreate a file with a unique name starting with 'tempfile_'
CCreate a directory named 'tempfile_XXXXXX'
DFail because of invalid syntax
If you want to create a temporary file in the system temp directory, which option do you use?
A-p /tmp
B-d /tmp
C-t /tmp
D-f /tmp
Explain how to safely create and use a temporary file in a bash script using mktemp.
Think about creating, using, and cleaning up the temp file.
You got /4 concepts.
    Describe the security benefits of using mktemp over fixed temporary file names.
    Consider what can go wrong with fixed names.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the mktemp command in bash scripting?
      easy
      A. To permanently delete files from the system
      B. To change file permissions
      C. To list all files in the current directory
      D. To create a unique temporary file or directory safely

      Solution

      1. Step 1: Understand the function of mktemp

        mktemp is designed to create temporary files or directories with unique names to avoid conflicts.
      2. Step 2: Compare with other options

        Options A, C, and D describe unrelated commands or actions not related to mktemp.
      3. Final Answer:

        To create a unique temporary file or directory safely -> Option D
      4. Quick Check:

        mktemp = unique temp file creation [OK]
      Hint: Remember: mktemp = safe unique temp file creation [OK]
      Common Mistakes:
      • Confusing mktemp with file deletion commands
      • Thinking mktemp lists files
      • Assuming mktemp changes file permissions
      2. Which of the following is the correct syntax to create a temporary file using mktemp in bash?
      easy
      A. mktemp
      B. mktemp -d
      C. mktemp --remove
      D. mktemp -r

      Solution

      1. Step 1: Identify basic mktemp usage

        Running mktemp alone creates a temporary file with a unique name.
      2. Step 2: Understand options

        -d creates a temporary directory, not a file. Options --remove and -r are invalid or not standard.
      3. Final Answer:

        mktemp -> Option A
      4. Quick Check:

        Basic mktemp = create temp file [OK]
      Hint: Use plain mktemp to create a temp file quickly [OK]
      Common Mistakes:
      • Using -d when a file is needed, creates directory instead
      • Using non-existent options like --remove or -r
      • Confusing directory creation with file creation
      3. What will be the output of the following bash script snippet?
      tempfile=$(mktemp)
      echo $tempfile
      rm $tempfile
      medium
      A. Creates a directory instead of a file
      B. Prints a unique temporary filename, then deletes it
      C. Prints the string 'tempfile' literally
      D. Prints an error because tempfile is empty

      Solution

      1. Step 1: Analyze mktemp usage

        mktemp creates a unique temporary file and returns its path, stored in tempfile.
      2. Step 2: Understand echo and rm commands

        echo $tempfile prints the temporary filename. rm $tempfile deletes the file to keep the system clean.
      3. Final Answer:

        Prints a unique temporary filename, then deletes it -> Option B
      4. Quick Check:

        mktemp creates file, echo prints, rm deletes [OK]
      Hint: mktemp returns filename; echo prints it; rm cleans up [OK]
      Common Mistakes:
      • Expecting literal 'tempfile' output instead of variable value
      • Thinking tempfile is empty or unset
      • Confusing file creation with directory creation
      4. Identify the error in this script snippet:
      tempfile=mktemp
      echo $tempfile
      rm $tempfile
      medium
      A. Missing parentheses to execute mktemp command
      B. rm command should be before echo
      C. mktemp should be quoted
      D. No error, script works fine

      Solution

      1. Step 1: Check variable assignment

        Assigning tempfile=mktemp sets the string 'mktemp', not the command output.
      2. Step 2: Correct command substitution

        Use tempfile=$(mktemp) to run the command and assign its output.
      3. Final Answer:

        Missing parentheses to execute mktemp command -> Option A
      4. Quick Check:

        Use $(mktemp) to assign command output [OK]
      Hint: Use $(command) to assign output, not plain text [OK]
      Common Mistakes:
      • Assigning command name as string instead of output
      • Forgetting $() or backticks for command substitution
      • Thinking rm order affects error here
      5. You want to create a temporary directory for your script to store files safely and remove it after use. Which command correctly creates this directory and stores its path in a variable named tempdir?
      hard
      A. tempdir=$(mktemp)
      B. tempdir=mktemp -d
      C. tempdir=$(mktemp -d)
      D. tempdir=mktemp -f

      Solution

      1. Step 1: Understand -d option in mktemp

        The -d option tells mktemp to create a temporary directory instead of a file.
      2. Step 2: Correct command substitution syntax

        Use $(mktemp -d) to execute the command and assign the directory path to tempdir.
      3. Final Answer:

        tempdir=$(mktemp -d) -> Option C
      4. Quick Check:

        Use $(mktemp -d) for temp directory creation [OK]
      Hint: Use $(mktemp -d) to create and assign temp directory [OK]
      Common Mistakes:
      • Assigning command as string without $()
      • Using mktemp without -d creates a file, not directory
      • Using invalid options like -f
      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