Skip to main content
eLearner.app
Module 2 · Lesson 1 of 33/11 in the course~10 min
Module lessons (1/3)

Creating resources (mkdir and touch)

Beyond navigating, you will frequently need to organize your workspace by creating new folders (directories) and empty files in the terminal.


Creating Folders: mkdir

To create a new folder, use the command:

Bash
mkdir [folder_name]

This command stands for Make Directory. For instance, mkdir documents will create a folder named documents in your current directory.

Creating Nested Paths with -p

If you try to create a folder inside a directory that does not exist yet (e.g. projects/javascript/2026), the command will fail and display an error.

To instruct Linux to automatically create any missing intermediate parent directories, use the -p option:

Bash
mkdir -p projects/javascript/2026

Creating Empty Files: touch

To create an empty file, or to update the modification timestamp of an existing file, use the command:

Bash
touch [file_name]

For example, typing touch app.js creates a blank text file with that name in the current folder.


Usage Examples and Common Errors

If you try to create a file using touch inside a folder that does not exist yet, you will receive an error:

Bash
touch ghost_folder/index.html
# Output:
# touch: cannot touch 'ghost_folder/index.html': No such file or directory

In this case, you must first create the directory structure and then create the file:

Bash
mkdir ghost_folder
touch ghost_folder/index.html

If a folder already exists, running mkdir without -p will generate an error:

Bash
mkdir projects
# Output:
# mkdir: cannot create directory 'projects': File exists

Try it yourself

Exercise 1: Create a projects folder

Exercise#linux.m2.l1.e1
Attempts: 0Loading…

Create a new folder named 'projects' in the current directory.

Loading editor…
Show hint

Use the mkdir command followed by the folder name 'projects'.

Solution available after 3 attempts

Exercise 2: Nested structure

Exercise#linux.m2.l1.e2
Attempts: 0Loading…

Create a nested directory tree 'workspace/src' in a single command, making sure to create any necessary parent directories.

Loading editor…
Show hint

Use the -p option with the mkdir command to build out nested paths.

Solution available after 3 attempts

Exercise 3: Create an empty file

Exercise#linux.m2.l1.e3
Attempts: 0Loading…

Create an empty file named 'index.html' in the current directory.

Loading editor…
Show hint

Use the touch command followed by the name of the file to create.

Solution available after 3 attempts