Bird
Raised Fist0
Linux CLIscripting~5 mins

Home directory (~) and shortcuts in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Home directory (~) and shortcuts
O(n)
Understanding Time Complexity

We want to understand how using shortcuts like the home directory symbol (~) affects command execution time.

Specifically, does using ~ change how long commands take as input grows?

Scenario Under Consideration

Analyze the time complexity of the following commands using ~ and absolute paths.


ls ~/Documents
cd ~/Downloads
cp ~/file.txt ./backup/
rm ~/temp/*.log
    

These commands use ~ as a shortcut for the home directory path.

Identify Repeating Operations

Look for operations that repeat or scale with input size.

  • Primary operation: Listing, copying, or removing files in directories.
  • How many times: Depends on number of files matching the command (like *.log files).
How Execution Grows With Input

The use of ~ itself does not add extra steps; it simply expands to the home directory path once.

Input Size (n)Approx. Operations
10 filesAbout 10 file operations
100 filesAbout 100 file operations
1000 filesAbout 1000 file operations

Pattern observation: The time grows with the number of files, not with the use of ~.

Final Time Complexity

Time Complexity: O(n)

This means the time depends on how many files are processed, not on using the ~ shortcut.

Common Mistake

[X] Wrong: "Using ~ makes commands slower because it adds extra steps."

[OK] Correct: The shell expands ~ instantly to your home path before running the command, so it does not add extra time.

Interview Connect

Understanding how shortcuts like ~ work helps you write efficient scripts and explain command behavior clearly.

Self-Check

What if we replaced ~ with an environment variable like $HOME? How would the time complexity change?

Practice

(1/5)
1. What does the ~ symbol represent in Linux command line?
easy
A. The previous directory
B. The root directory
C. The current user's home directory
D. The system's temporary folder

Solution

  1. Step 1: Understand the meaning of ~

    The tilde symbol ~ is a shortcut that always points to the current user's home directory, like /home/username.
  2. Step 2: Compare with other directory symbols

    / is root, - is previous directory, and /tmp is temporary folder, so they don't match ~.
  3. Final Answer:

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

    ~ = home directory [OK]
Hint: Remember: ~ always means your home folder [OK]
Common Mistakes:
  • Confusing ~ with root directory /
  • Thinking ~ means previous directory
  • Assuming ~ is a system folder
2. Which of the following commands correctly lists files in the user's home directory using the shortcut?
easy
A. ls ~
B. ls ./home
C. ls /home
D. ls /root

Solution

  1. Step 1: Identify the shortcut for home directory

    ~ is the shortcut for the current user's home directory, so ls ~ lists files there.
  2. Step 2: Check other options

    /home is the parent folder for all users, ./home is a relative path that may not exist, and /root is root user's home, not current user.
  3. Final Answer:

    ls ~ -> Option A
  4. Quick Check:

    ls ~ lists home files [OK]
Hint: Use ls ~ to list your home files quickly [OK]
Common Mistakes:
  • Using absolute path /home instead of ~
  • Confusing relative path ./home with home directory
  • Trying to list /root which is for root user only
3. What is the output of the command echo ~/Documents if the user's home directory is /home/alice?
medium
A. /home/alice/Documents
B. /Documents
C. ~/Documents
D. /root/Documents

Solution

  1. Step 1: Understand how shell expands ~

    The shell replaces ~ with the full path of the user's home directory, here /home/alice.
  2. Step 2: Combine with the rest of the path

    Appending /Documents to /home/alice gives /home/alice/Documents.
  3. Final Answer:

    /home/alice/Documents -> Option A
  4. Quick Check:

    echo ~/Documents = /home/alice/Documents [OK]
Hint: Shell expands ~ to full home path before command runs [OK]
Common Mistakes:
  • Thinking ~ stays as literal tilde
  • Confusing root's home /root with user's home
  • Ignoring path concatenation after ~
4. A user runs cd ~username but gets an error. What is the likely cause?
medium
A. The home directory is not mounted
B. The tilde shortcut only works for current user
C. The command syntax is incorrect
D. The username does not exist on the system

Solution

  1. Step 1: Understand ~username usage

    ~username expands to the home directory of the specified user if that user exists.
  2. Step 2: Identify error cause

    If the username does not exist, the shell cannot expand ~username, causing an error.
  3. Final Answer:

    The username does not exist on the system -> Option D
  4. Quick Check:

    ~username needs valid user [OK]
Hint: Check if username exists before using ~username [OK]
Common Mistakes:
  • Assuming ~ only works for current user
  • Thinking syntax is wrong when it is correct
  • Ignoring user existence in error
5. You want to create a script that copies a file named notes.txt from your home directory to a backup folder inside your Documents. Which command correctly uses the ~ shortcut?
hard
A. cp notes.txt ~/Documents/backup/
B. cp ~/notes.txt ~/Documents/backup/
C. cp ~/notes.txt /Documents/backup/
D. cp /notes.txt ~/Documents/backup/

Solution

  1. Step 1: Identify source file path

    The file notes.txt is in the home directory, so ~/notes.txt correctly points to it.
  2. Step 2: Identify destination folder path

    The backup folder is inside Documents in home, so ~/Documents/backup/ is the correct destination path.
  3. Step 3: Check other options

    /notes.txt is root directory file (likely wrong), /Documents/backup/ is absolute path outside home, and notes.txt without path means current directory, not home.
  4. Final Answer:

    cp ~/notes.txt ~/Documents/backup/ -> Option B
  5. Quick Check:

    Use ~ for home paths in source and destination [OK]
Hint: Use ~ before filenames to refer to your home folder [OK]
Common Mistakes:
  • Using absolute paths outside home by mistake
  • Omitting ~ and assuming current directory is home
  • Confusing source and destination paths
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