Files

147 lines
4.8 KiB
YAML

id: path
title: File Paths
image: base
instruction: |
In this quest, you will learn:
1. Absolute and relative paths
2. How to show your current path with `pwd`
requirements:
- explore
stages:
- id: start
name: Click `Start` to begin the lesson
condition:
command: echo start
response:
content: |
In Linux, a path describes the location of a file or folder.
Paths can be relative or absolute.
A relative path starts from your current folder. An absolute path starts from the root folder.
First, use `ls` to list the files in this folder.
- id: ls
name: List the files in the folder
requirements:
- start
condition:
pwd: /home/commander
command: ls
response:
content: |
Now use `cd` to enter the `folder1` folder.
- id: cd-folder1
name: Enter `folder1`
requirements:
- ls
condition:
pwd: /home/commander/folder1
response:
content: |
You have entered `folder1`.
In `cd folder1`, the `folder1` part is a relative path.
Likewise, `..` in `cd ..` is a relative path.
A relative path can span more than one level of folders.
For example, to enter `folder2` from here, you could use `cd ..` to go up one level, then `cd folder2` to enter it.
You can also join `..` and `folder2` with `/` and enter `cd ../folder2` to get there in one command.
Try entering `folder2` this way.
hint: Enter `cd ../folder2` to move into `folder2`.
- id: cd-folder2
name: Enter `folder2`
requirements:
- cd-folder1
condition:
pwd: /home/commander/folder2
exceptions:
- id: not_in_folder2
condition:
pwd: /home/commander
response:
content: Enter `cd folder2` to move into `folder2`
response:
content: |
You have entered `folder2` using a relative path.
You can also add a relative path after `ls` to list the contents of another folder.
For example, use `ls ../folder1` to see which files are in `folder1`.
Try listing the files in `folder1` this way.
hint: Enter `ls ../folder1` to list the files in `folder1`.
- id: ls-folder1
name: List the files in `folder1`
requirements:
- cd-folder2
condition:
output: file1.txt
exceptions:
- id: not_in_folder2
condition:
not:
pwd: /home/commander/folder2
response:
content: Return to `folder2` with `cd ~/folder2`, then use `ls ../folder1` to list the contents of `folder1` without leaving `folder2`.
response:
content: |
Great! You now know how to use relative paths.
Next, let's look at absolute paths.
An absolute path starts from the root folder, which is at the top of the file tree.
Use `pwd` to display the absolute path to your current folder.
`pwd` stands for `print working directory`: it displays the path to the folder you are in.
Now use `pwd` to display your current absolute path.
hint: Enter `pwd` to display your current absolute path
- id: pwd
name: Display your current absolute path
requirements:
- ls-folder1
condition:
pwd: /home/commander/folder2
command: pwd
exceptions:
- id: not_in_folder2
condition:
not:
pwd: /home/commander/folder2
response:
content: Return to `folder2`, then use `pwd` to display your current absolute path
response:
content: |
Your current absolute path is `/home/commander/folder2`.
The command prompt also shows your current location.
In `commander:~/folder2 $`, `~/folder2` is a shortened form of the path to your current folder.
`~` stands for `/home/commander`, your home folder. Each game starts here.
You can use absolute paths with `ls` and `cd` too.
For example, use `ls ~` to list your home folder or `cd ~` to return to it.
Now use `ls ~` to list the contents of your home folder.
hint: Enter `ls ~` to list the contents of your home folder
- id: ls_home
name: List the contents of your home folder
requirements:
- pwd
condition:
command: ls ~
response:
content: |
Now use `cd ~` to return to your home folder.
hint: Enter `cd ~` to return to your home folder
- id: END
name: Return to your home folder
requirements:
- ls_home
condition:
command: cd ~
exceptions:
- id: already_home
condition:
pwd: /home/commander
response:
content: Use `cd ~` to return to your home folder
response:
content: |
You have returned to your home folder.
Congratulations! You now know how to use absolute and relative paths and display your current absolute path.