Bird
Raised Fist0
Linux CLIscripting~15 mins

Absolute vs relative paths in Linux CLI - Hands-On Comparison

Choose your learning style10 modes available
Understanding Absolute vs Relative Paths in Linux CLI
📖 Scenario: You are organizing files in your home directory on a Linux system. You want to practice using absolute and relative paths to navigate and list files.
🎯 Goal: Learn how to use absolute and relative paths to list files in different directories using the ls command.
📋 What You'll Learn
Use absolute paths starting from root /
Use relative paths starting from current directory .
Understand difference between absolute and relative paths
💡 Why This Matters
🌍 Real World
Knowing absolute and relative paths helps you manage files and folders efficiently on any Linux system.
💼 Career
System administrators, developers, and anyone working with servers or command line need to understand paths to navigate and automate tasks.
Progress0 / 4 steps
1
Create a directory structure
Create a directory called project inside your home directory /home/user and inside project create a directory called docs. Use the mkdir -p /home/user/project/docs command.
Linux CLI
Hint

Use mkdir -p to create nested directories in one command.

2
Create a config file
Create an empty file called config.txt inside the docs directory using the absolute path /home/user/project/docs/config.txt. Use the touch command.
Linux CLI
Hint

Use touch with the full absolute path to create the file.

3
List files using relative path
Change directory to /home/user/project using cd. Then list the files inside the docs directory using a relative path with ls docs.
Linux CLI
Hint

Use cd /home/user/project to move to the project directory, then ls docs to list files inside docs using relative path.

4
List files using absolute path
From any directory, list the files inside /home/user/project/docs using the absolute path with ls /home/user/project/docs.
Linux CLI
Hint

Use ls /home/user/project/docs to list files with absolute path. The output should show config.txt twice from both ls docs and ls /home/user/project/docs.

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