Discover how a simple change in how you write file addresses can save you hours of frustration!
Absolute vs relative paths in Linux CLI - When to Use Which
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.
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.
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.
cd /home/user/documents/work cat /home/user/documents/work/report.txt
cd /home/user/documents/work cat report.txt
You can navigate and manage files faster and with fewer mistakes, making your work smoother and more efficient.
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.
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
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/documentsstarts with/, making it an absolute path.Final Answer:
/home/user/documents -> Option BQuick Check:
Absolute path starts with / = A [OK]
- Confusing relative paths with absolute paths
- Thinking ./ or ../ are absolute paths
- Ignoring the leading slash in paths
projects inside the current folder?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 projectsusescd projects, which is correct and simplest for relative path inside current folder.Final Answer:
cd projects -> Option AQuick Check:
Relative path inside current folder = cd projects [OK]
- Using leading slash for relative paths
- Confusing ../ with current directory
- Adding unnecessary ./ prefix
/home/user, what is the full absolute path of ../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, appenddocuments/report.txtto get/home/documents/report.txt.Final Answer:
/home/documents/report.txt -> Option CQuick Check:
.. moves up one folder = /home/documents/report.txt [OK]
- Not moving up directory with ..
- Confusing relative and absolute paths
- Leaving .. in the final path
cd ../folder but get an error: bash: cd: ../folder: No such file or directory. What is the likely cause?Solution
Step 1: Understand the error message
The error says the directory../folderdoes not exist, meaning the folder namedfolderis 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 folderfolderdoes not exist inside the parent directory -> Option AQuick Check:
No such file means folder missing at relative path [OK]
- Assuming syntax error instead of missing folder
- Confusing relative and absolute paths
- Trying to use ./ instead of ../ incorrectly
/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?Solution
Step 1: Calculate relative path from
From/var/www/htmlto/home/user/website/var/www/html, going up three levels:html -> www -> varreaches/. Then go intohome/user/website.Step 2: Form the relative path
The relative path is../../../home/user/website/index.html. So the command iscp ../../../home/user/website/index.html ..Final Answer:
cp ../../../home/user/website/index.html . -> Option DQuick Check:
3 ups to root, then home path = ../../../home/user/website [OK]
- Using too few ../ and missing root
- Using absolute path when asked for relative
- Confusing current directory (.) with parent (..)
Ready to prove it?
Pass the test and this pattern moves unknown
