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:
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:
mkdir -p projects/javascript/2026Creating Empty Files: touch
To create an empty file, or to update the modification timestamp of an existing file, use the command:
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:
touch ghost_folder/index.html
# Output:
# touch: cannot touch 'ghost_folder/index.html': No such file or directoryIn this case, you must first create the directory structure and then create the file:
mkdir ghost_folder
touch ghost_folder/index.htmlIf a folder already exists, running mkdir without -p will generate an error:
mkdir projects
# Output:
# mkdir: cannot create directory 'projects': File existsTry it yourself
Exercise 1: Create a projects folder
Create a new folder named 'projects' in the current directory.
Show hint
Use the mkdir command followed by the folder name 'projects'.
Solution available after 3 attempts
Exercise 2: Nested structure
Create a nested directory tree 'workspace/src' in a single command, making sure to create any necessary parent directories.
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
Create an empty file named 'index.html' in the current directory.
Show hint
Use the touch command followed by the name of the file to create.
Solution available after 3 attempts