Bird
Raised Fist0
Linux CLIscripting~5 mins

Absolute vs relative paths in Linux CLI - Performance Comparison

Choose your learning style10 modes available
Time Complexity: Absolute vs relative paths
O(n)
Understanding Time Complexity

When working with file paths in Linux, commands often use absolute or relative paths to find files.

We want to understand how the time to locate a file changes depending on the path type used.

Scenario Under Consideration

Analyze the time complexity of the following commands.


# Using absolute path
cat /home/user/documents/report.txt

# Using relative path
cat documents/report.txt

These commands read a file using either an absolute or a relative path.

Identify Repeating Operations

Look at what the system does to find the file.

  • Primary operation: Traversing directories in the path to locate the file.
  • How many times: Once per directory in the path, step by step.
How Execution Grows With Input

Finding a file means checking each folder in the path one by one.

Input Size (n)Approx. Operations
3 (folders deep)3 directory lookups
5 (folders deep)5 directory lookups
10 (folders deep)10 directory lookups

Pattern observation: The time grows linearly with the number of folders in the path.

Final Time Complexity

Time Complexity: O(n)

This means the time to find a file grows in direct proportion to how many folders are in its path.

Common Mistake

[X] Wrong: "Using an absolute path is always slower because it starts from the root."

[OK] Correct: Both absolute and relative paths require checking each folder in the path, so time depends on path length, not path type.

Interview Connect

Understanding how file paths affect command execution helps you reason about system behavior and efficiency in real tasks.

Self-Check

What if the file system used caching for directory lookups? How would that affect the time complexity?

Practice

(1/5)
1. Which of the following is an absolute path in Linux?
easy
A. documents/reports
B. /home/user/documents
C. ./downloads
D. ../pictures

Solution

  1. Step 1: Understand absolute path definition

    An absolute path always starts from the root directory, which is represented by /.
  2. Step 2: Identify the path starting with /

    Only /home/user/documents starts with /, making it an absolute path.
  3. Final Answer:

    /home/user/documents -> Option B
  4. Quick Check:

    Absolute path starts with / = A [OK]
Hint: Absolute paths always start with a slash / [OK]
Common Mistakes:
  • Confusing relative paths with absolute paths
  • Thinking ./ or ../ are absolute paths
  • Ignoring the leading slash in paths
2. Which command correctly changes directory to a relative path named projects inside the current folder?
easy
A. cd projects
B. cd .projects
C. cd /projects
D. cd ../projects

Solution

  1. Step 1: Understand relative path usage in cd

    To move into a folder inside the current directory, you can use the folder name directly or prefix it with ./.
  2. Step 2: Identify the simplest correct syntax

    cd projects uses cd projects, which is correct and simplest for relative path inside current folder.
  3. Final Answer:

    cd projects -> Option A
  4. Quick Check:

    Relative path inside current folder = cd projects [OK]
Hint: Use folder name alone to cd into relative path [OK]
Common Mistakes:
  • Using leading slash for relative paths
  • Confusing ../ with current directory
  • Adding unnecessary ./ prefix
3. If your current directory is /home/user, what is the full absolute path of ../documents/report.txt?
medium
A. /documents/report.txt
B. /home/user/documents/report.txt
C. /home/documents/report.txt
D. /home/user/../documents/report.txt

Solution

  1. Step 1: Understand .. in relative paths

    .. means move one directory up from current directory. From /home/user, going up one level is /home.
  2. Step 2: Append the rest of the path

    After moving up, append documents/report.txt to get /home/documents/report.txt.
  3. Final Answer:

    /home/documents/report.txt -> Option C
  4. Quick Check:

    .. moves up one folder = /home/documents/report.txt [OK]
Hint: .. means go up one folder from current directory [OK]
Common Mistakes:
  • Not moving up directory with ..
  • Confusing relative and absolute paths
  • Leaving .. in the final path
4. You run cd ../folder but get an error: bash: cd: ../folder: No such file or directory. What is the likely cause?
medium
A. The folder folder does not exist inside the parent directory
B. You used an absolute path instead of relative
C. You need to use ./folder instead
D. You must use cd /folder to access it

Solution

  1. Step 1: Understand the error message

    The error says the directory ../folder does not exist, meaning the folder named folder is missing in the parent directory.
  2. Step 2: Check the path usage

    The command uses relative path correctly. The problem is the folder is not found at that location.
  3. Final Answer:

    The folder folder does not exist inside the parent directory -> Option A
  4. Quick Check:

    No such file means folder missing at relative path [OK]
Hint: Check if folder exists in parent directory when using ../folder [OK]
Common Mistakes:
  • Assuming syntax error instead of missing folder
  • Confusing relative and absolute paths
  • Trying to use ./ instead of ../ incorrectly
5. You are in /var/www/html. You want to copy a file index.html from /home/user/website to your current directory using a relative path. Which command is correct?
hard
A. cp /home/user/website/index.html .
B. cp ../../home/user/website/index.html .
C. cp ../../../../home/user/website/index.html .
D. cp ../../../home/user/website/index.html .

Solution

  1. Step 1: Calculate relative path from /var/www/html to /home/user/website

    From /var/www/html, going up three levels: html -> www -> var reaches /. Then go into home/user/website.
  2. Step 2: Form the relative path

    The relative path is ../../../home/user/website/index.html. So the command is cp ../../../home/user/website/index.html ..
  3. Final Answer:

    cp ../../../home/user/website/index.html . -> Option D
  4. Quick Check:

    3 ups to root, then home path = ../../../home/user/website [OK]
Hint: Count folders up to root, then add full path [OK]
Common Mistakes:
  • Using too few ../ and missing root
  • Using absolute path when asked for relative
  • Confusing current directory (.) with parent (..)
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