Bird
Raised Fist0
Linux CLIscripting~3 mins

Absolute vs relative paths in Linux CLI - When to Use Which

Choose your learning style10 modes available
The Big Idea

Discover how a simple change in how you write file addresses can save you hours of frustration!

The Scenario

Imagine you are organizing files on your computer. You want to open a document, but you have to remember the full address every time, like "/home/user/documents/work/report.txt". Sometimes you are in different folders, and you get lost trying to find the right file.

The Problem

Manually typing full file addresses is slow and easy to mess up. If you move files or change folders, your paths break. You waste time fixing errors or searching for files, which is frustrating and slows down your work.

The Solution

Using absolute and relative paths helps you find files quickly and reliably. Absolute paths give the full address from the root, so you never get lost. Relative paths let you move around easily from your current folder without typing long addresses.

Before vs After
✗ Before
cd /home/user/documents/work
cat /home/user/documents/work/report.txt
✓ After
cd /home/user/documents/work
cat report.txt
What It Enables

You can navigate and manage files faster and with fewer mistakes, making your work smoother and more efficient.

Real Life Example

When writing a script to backup files, using relative paths means the script works no matter where you run it from, saving time and avoiding errors.

Key Takeaways

Absolute paths show the full location from the root folder.

Relative paths describe locations based on your current folder.

Knowing both helps you move and manage files easily and safely.

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