What does the tilde (~) symbol represent in bash scripting?
The tilde (~) represents the current user's home directory path. For example, ~ expands to /home/username.
Click to reveal answer
beginner
How does bash handle the tilde (~) when used at the start of a path?
Bash replaces the tilde (~) at the start of a path with the full path of the user's home directory before running the command.
Click to reveal answer
intermediate
What happens if you use ~username in bash?
Using ~username expands to the home directory of the specified user, not the current user. For example, ~john expands to /home/john.
Click to reveal answer
intermediate
Does tilde expansion happen if ~ is used in the middle of a path, like /tmp/~/file?
No, tilde expansion only happens if ~ is at the start of the path or immediately after a colon (:). In /tmp/~/file, ~ is treated as a normal folder name.
Click to reveal answer
intermediate
Can tilde expansion be used inside quotes in bash?
Tilde expansion does NOT happen inside single quotes ('~'), and it does NOT happen inside double quotes ("~").
Click to reveal answer
What does the command cd ~ do in bash?
AChanges directory to the current user's home directory
BChanges directory to the root directory
CChanges directory to a folder named ~ in the current directory
DThrows an error
✗ Incorrect
The tilde (~) expands to the current user's home directory, so cd ~ moves you there.
What will echo ~john output if user 'john' exists?
AThe current user's home directory
BThe string '~john' literally
CThe home directory path of user 'john'
DAn error message
✗ Incorrect
Using ~username expands to that user's home directory if the user exists.
Which of these paths will NOT trigger tilde expansion?
A/tmp/~/file
B~/documents
C:~/.bashrc
D~
✗ Incorrect
Tilde expansion only happens at the start of a path or after a colon (:). In /tmp/~/file, ~ is in the middle and treated literally.
Does tilde expansion occur inside single quotes in bash?
AYes, always
BNo, never
COnly if the quotes are empty
DOnly if the tilde is at the end
✗ Incorrect
Tilde expansion does not happen inside single quotes because single quotes prevent all expansions.
What does the command ls ~ do?
ALists files in the current directory
BLists files in a folder named ~
CLists files in the root directory
DLists files in the user's home directory
✗ Incorrect
~ expands to the user's home directory, so ls ~ lists files there.
Explain what tilde expansion (~) is and how it helps when working with file paths in bash.
Think about how ~ saves you from typing full home directory paths.
You got /4 concepts.
Describe when tilde expansion does NOT happen in bash and why that matters.
Consider how quoting and position affect tilde behavior.
You got /4 concepts.
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
Step 1: Understand tilde usage in bash
The tilde ~ is a shortcut that expands to the current user's home directory path.
Step 2: Compare options with definition
Only the current user's home directory correctly states that ~ means the current user's home directory.
Final Answer:
The current user's home directory -> Option A
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
Step 1: Understand tilde with username
Using ~username refers to that user's home directory without a slash after the username.
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.
Final Answer:
~alice -> Option D
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
Step 1: Understand echo with tilde
The shell expands ~ to the current user's home directory before running echo.
Step 2: Apply expansion
Since the home directory is /home/bob, the command becomes echo /home/bob, which prints /home/bob.
Final Answer:
/home/bob -> Option A
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
Step 1: Understand tilde expansion and quoting
Tilde expansion happens only when ~ is unquoted. Quoting it (like '~') disables expansion.
Step 2: Analyze error cause
The error shows ls tried to find a folder literally named '~', meaning expansion did not happen due to quotes.
Final Answer:
You put single quotes around ~, preventing expansion -> Option B
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
Step 1: Understand tilde with username and path
~carol expands to carol's home directory. Adding /notes.txt accesses the file inside her home.
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.
Final Answer:
cp ~carol/notes.txt . -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.