Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Tilde expansion (~) in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the current user's home directory using tilde expansion.

Bash Scripting
echo [1]
Drag options to blanks, or click blank then click option'
A~
B$PWD
C/home/user
D$HOME
Attempts:
3 left
💡 Hint
Common Mistakes
Using $PWD instead of ~, which gives the current directory, not home.
Using $HOME works but is not tilde expansion.
2fill in blank
medium

Complete the command to list files in the home directory of user 'alice' using tilde expansion.

Bash Scripting
ls [1]
Drag options to blanks, or click blank then click option'
A~alice
B~ /alice
C~/alice
D~alice/
Attempts:
3 left
💡 Hint
Common Mistakes
Adding a slash between ~ and username breaks tilde expansion.
Using ~/alice looks for a directory named 'alice' inside your home.
3fill in blank
hard

Fix the error in the command to copy a file to the home directory using tilde expansion.

Bash Scripting
cp file.txt [1]/documents/
Drag options to blanks, or click blank then click option'
A"~"
B'~'
C~
D$HOME
Attempts:
3 left
💡 Hint
Common Mistakes
Quoting ~ disables tilde expansion.
Using $HOME works but is not tilde expansion.
4fill in blank
hard

Fill both blanks to create a directory path inside the current user's home directory.

Bash Scripting
mkdir [1]/[2]
Drag options to blanks, or click blank then click option'
A~
Bprojects
Cdocuments
D/home
Attempts:
3 left
💡 Hint
Common Mistakes
Using /home instead of ~ for home directory.
Using 'documents' instead of 'projects' if the task expects 'projects'.
5fill in blank
hard

Fill all three blanks to create a file path to 'notes.txt' inside user 'bob's Documents folder using tilde expansion.

Bash Scripting
cp notes.txt [1]/[2]/[3]
Drag options to blanks, or click blank then click option'
A~bob
BDocuments
Cnotes.txt
DDownloads
Attempts:
3 left
💡 Hint
Common Mistakes
Using ~bob/Downloads instead of Documents.
Putting quotes around ~bob disables expansion.

Practice

(1/5)
1. What does the tilde symbol ~ represent in a bash shell?
easy
A. The current user's home directory
B. The root directory
C. The current working directory
D. A temporary directory

Solution

  1. Step 1: Understand tilde usage in bash

    The tilde ~ is a shortcut that expands to the current user's home directory path.
  2. Step 2: Compare options with definition

    Only the current user's home directory correctly states that ~ means the current user's home directory.
  3. Final Answer:

    The current user's home directory -> Option A
  4. Quick Check:

    Tilde (~) = home directory [OK]
Hint: Remember: ~ always means your home folder [OK]
Common Mistakes:
  • Confusing ~ with root directory /
  • Thinking ~ means current directory
  • Assuming ~ is a temporary folder
2. Which of the following is the correct way to refer to another user's home directory named alice using tilde expansion?
easy
A. ~ /alice
B. ~/alice
C. ~ alice
D. ~alice

Solution

  1. Step 1: Understand tilde with username

    Using ~username refers to that user's home directory without a slash after the username.
  2. Step 2: Check each option

    ~ /alice has a space after ~, invalid. ~/alice refers to alice subfolder in current user's home. ~alice correctly refers to alice's home directory. ~ alice has space between ~ and alice, invalid syntax.
  3. Final Answer:

    ~alice -> Option D
  4. Quick Check:

    ~username = user's home directory [OK]
Hint: Use ~username without spaces or slashes to get their home [OK]
Common Mistakes:
  • Adding a slash immediately after username
  • Putting space between ~ and username
  • Using ~/username which means subfolder in current user's home
3. What will be the output of the following bash command if the current user's home directory is /home/bob?
echo ~
medium
A. /home/bob
B. ~
C. /root
D. Error: command not found

Solution

  1. Step 1: Understand echo with tilde

    The shell expands ~ to the current user's home directory before running echo.
  2. Step 2: Apply expansion

    Since the home directory is /home/bob, the command becomes echo /home/bob, which prints /home/bob.
  3. Final Answer:

    /home/bob -> Option A
  4. Quick Check:

    echo ~ outputs home directory path [OK]
Hint: echo ~ prints your home folder path [OK]
Common Mistakes:
  • Expecting echo to print ~ literally
  • Confusing with root directory /root
  • Thinking echo ~ causes error
4. You wrote this bash command to list files in your home directory:
ls ~
But it shows an error: ls: cannot access '~': No such file or directory. What is the most likely cause?
medium
A. ls command does not support ~
B. You put single quotes around ~, preventing expansion
C. You need to use $HOME instead of ~
D. Your home directory does not exist

Solution

  1. Step 1: Understand tilde expansion and quoting

    Tilde expansion happens only when ~ is unquoted. Quoting it (like '~') disables expansion.
  2. Step 2: Analyze error cause

    The error shows ls tried to find a folder literally named '~', meaning expansion did not happen due to quotes.
  3. Final Answer:

    You put single quotes around ~, preventing expansion -> Option B
  4. Quick Check:

    Quotes block tilde expansion [OK]
Hint: Never quote ~ if you want it expanded [OK]
Common Mistakes:
  • Assuming ~ always expands even in quotes
  • Thinking home directory is missing
  • Believing ls cannot use ~
5. You want to write a bash script that copies a file named notes.txt from the home directory of user carol to your current directory. Which command correctly uses tilde expansion to do this?
hard
A. cp ~/carol/notes.txt .
B. cp ~ /carol/notes.txt .
C. cp ~carol/notes.txt .
D. cp ~carol notes.txt .

Solution

  1. Step 1: Understand tilde with username and path

    ~carol expands to carol's home directory. Adding /notes.txt accesses the file inside her home.
  2. Step 2: Check each option

    cp ~carol/notes.txt . correctly uses ~carol/notes.txt. cp ~/carol/notes.txt . uses ~/carol/notes.txt which means a subfolder carol inside your home, wrong user. cp ~ /carol/notes.txt . has a space breaking the path. cp ~carol notes.txt . misses the slash before filename, so it tries to copy a directory.
  3. Final Answer:

    cp ~carol/notes.txt . -> Option C
  4. Quick Check:

    ~username/file = file in that user's home [OK]
Hint: Use ~username/path to access files in another user's home [OK]
Common Mistakes:
  • Using ~/username which is wrong path
  • Adding spaces breaking tilde expansion
  • Forgetting slash between username and file
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