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
Step 1: Understand absolute path definition
An absolute path always starts from the root directory, which is represented by /.
Step 2: Identify the path starting with /
Only /home/user/documents starts with /, making it an absolute path.
Final Answer:
/home/user/documents -> Option B
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
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 ./.
Step 2: Identify the simplest correct syntax
cd projects uses cd projects, which is correct and simplest for relative path inside current folder.
Final Answer:
cd projects -> Option A
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
Step 1: Understand .. in relative paths
.. means move one directory up from current directory. From /home/user, going up one level is /home.
Step 2: Append the rest of the path
After moving up, append documents/report.txt to get /home/documents/report.txt.
Final Answer:
/home/documents/report.txt -> Option C
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
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.
Step 2: Check the path usage
The command uses relative path correctly. The problem is the folder is not found at that location.
Final Answer:
The folder folder does not exist inside the parent directory -> Option A
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
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.
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 ..
Final Answer:
cp ../../../home/user/website/index.html . -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.