Bird
Raised Fist0
Linux CLIscripting~10 mins

mkdir (create directories) in Linux CLI - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - mkdir (create directories)
Start
↓
Run mkdir command
↓
Check if directory exists
↓
Create directory
↓
End
The mkdir command tries to create a directory. If the directory exists, it shows an error unless options are used.
Execution Sample
Linux CLI
mkdir myfolder
mkdir myfolder
mkdir -p myfolder/subfolder
Creates a directory 'myfolder', tries to create it again (error), then creates 'myfolder/subfolder' with -p option.
Execution Table
StepCommandDirectory Exists?Action TakenOutput
1mkdir myfolderNoCreate 'myfolder'
2mkdir myfolderYesError: directory existsmkdir: cannot create directory ‘myfolder’: File exists
3mkdir -p myfolder/subfolderYes (myfolder), No (subfolder)Create 'subfolder' inside 'myfolder'
💡 After step 3, all directories exist; command ends successfully.
Variable Tracker
DirectoryStartAfter Step 1After Step 2After Step 3
myfolderDoes not existExistsExistsExists
myfolder/subfolderDoes not existDoes not existDoes not existExists
Key Moments - 2 Insights
Why does the second mkdir command give an error?
Because 'myfolder' already exists after step 1, so trying to create it again without -p causes an error (see step 2 in execution_table).
What does the -p option do in mkdir?
It creates parent directories as needed and does not error if the directory exists, allowing nested directories creation (see step 3).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output of step 2?
ANo output, directory created
BDirectory created with no error
Cmkdir: cannot create directory ‘myfolder’: File exists
DPermission denied error
💡 Hint
Check the 'Output' column for step 2 in the execution_table.
At which step does 'myfolder/subfolder' get created?
AStep 2
BStep 3
CStep 1
DIt is never created
💡 Hint
Look at the 'Directory Exists?' and 'Action Taken' columns for 'myfolder/subfolder' in the execution_table.
If we remove the -p option from step 3, what would happen?
AError because 'myfolder/subfolder' parent missing
BSubfolder is created anyway
CError because 'myfolder' does not exist
DNo error, command ignored
💡 Hint
Without -p, mkdir cannot create nested directories if parents don't exist; see step 3 explanation.
Concept Snapshot
mkdir command creates directories.
If directory exists, mkdir errors unless -p option is used.
-p creates parent directories as needed.
Syntax: mkdir [options] directory_name
Use -p for nested directories without errors.
Full Transcript
The mkdir command is used to create directories in Linux. When you run mkdir with a directory name, it creates that directory if it does not exist. If the directory already exists, mkdir shows an error unless you use the -p option. The -p option allows creating nested directories and does not error if the directory exists. For example, running 'mkdir myfolder' creates a folder named myfolder. Running it again causes an error because the folder exists. Using 'mkdir -p myfolder/subfolder' creates the subfolder inside myfolder, creating any missing parent directories as needed.

Practice

(1/5)
1. What does the mkdir command do in Linux?
easy
A. Deletes files from the system
B. Creates new directories (folders) to organize files
C. Lists files in a directory
D. Changes the current directory

Solution

  1. Step 1: Understand the purpose of mkdir

    The mkdir command is used to create new directories (folders) in Linux.
  2. Step 2: Compare with other commands

    Deleting files is done by rm, listing files by ls, and changing directories by cd.
  3. Final Answer:

    Creates new directories (folders) to organize files -> Option B
  4. Quick Check:

    mkdir = create folders [OK]
Hint: mkdir always makes folders, not files or lists [OK]
Common Mistakes:
  • Confusing mkdir with rm or ls commands
  • Thinking mkdir deletes files
  • Assuming mkdir changes directories
2. Which of the following is the correct syntax to create a directory named projects?
easy
A. mkdir: projects
B. mkdir -d projects
C. mkdir projects
D. mkdir > projects

Solution

  1. Step 1: Recall mkdir syntax

    The basic syntax to create a directory is mkdir directory_name. No extra symbols or options are needed for a simple directory.
  2. Step 2: Evaluate options

    mkdir -d projects uses a non-existent -d flag, mkdir: projects uses invalid colon syntax, and mkdir > projects uses redirection which is incorrect here.
  3. Final Answer:

    mkdir projects -> Option C
  4. Quick Check:

    Simple mkdir = mkdir directory_name [OK]
Hint: Use just mkdir plus folder name to create one folder [OK]
Common Mistakes:
  • Adding unnecessary flags like -d
  • Using colons or symbols incorrectly
  • Trying to redirect output with >
3. What will be the result of running this command?
mkdir -p home/user/docs
medium
A. Creates home, user, and docs directories if they don't exist
B. Creates only the docs directory if home/user exists
C. Shows an error because -p is invalid
D. Deletes existing home/user/docs directory

Solution

  1. Step 1: Understand the -p option

    The -p option tells mkdir to create parent directories as needed without error if they already exist.
  2. Step 2: Analyze the command effect

    This command creates the full path home/user/docs including any missing directories in the path.
  3. Final Answer:

    Creates home, user, and docs directories if they don't exist -> Option A
  4. Quick Check:

    mkdir -p = create nested folders [OK]
Hint: Use -p to make all needed folders in one go [OK]
Common Mistakes:
  • Thinking -p only creates the last folder
  • Assuming -p is invalid or causes errors
  • Confusing mkdir with delete commands
4. You run mkdir folder1 folder2 folder3 but get an error. What is the most likely cause?
medium
A. You need to use -p to create multiple folders
B. mkdir cannot create more than one folder at a time
C. You must create folders one by one with separate commands
D. One or more folder names contain spaces without quotes

Solution

  1. Step 1: Check mkdir multiple folder support

    mkdir supports creating multiple folders by listing names separated by spaces.
  2. Step 2: Identify common error with spaces

    If folder names contain spaces, they must be quoted or escaped. Otherwise, mkdir treats parts as separate names causing errors.
  3. Final Answer:

    One or more folder names contain spaces without quotes -> Option D
  4. Quick Check:

    Spaces in names need quotes for mkdir [OK]
Hint: Quote folder names with spaces to avoid errors [OK]
Common Mistakes:
  • Thinking -p is needed for multiple folders
  • Believing mkdir only creates one folder at a time
  • Not quoting folder names with spaces
5. You want to create a project folder structure with src, bin, and docs inside myproject in one command. Which command achieves this?
hard
A. mkdir -p myproject/src myproject/bin myproject/docs
B. mkdir myproject && mkdir src bin docs
C. mkdir -p myproject/src/bin/docs
D. mkdir myproject/src myproject/bin myproject/docs

Solution

  1. Step 1: Understand nested folder creation

    Using -p allows creating parent directories and nested folders in one command without errors.
  2. Step 2: Analyze each option

    mkdir myproject/src myproject/bin myproject/docs lacks -p so may fail if myproject doesn't exist. mkdir -p myproject/src myproject/bin myproject/docs correctly uses -p to create all paths. mkdir -p myproject/src/bin/docs creates nested folders incorrectly. mkdir myproject && mkdir src bin docs creates folders separately, not in one command.
  3. Final Answer:

    mkdir -p myproject/src myproject/bin myproject/docs -> Option A
  4. Quick Check:

    Use mkdir -p with full paths for multiple nested folders [OK]
Hint: Use mkdir -p with all paths to create nested folders at once [OK]
Common Mistakes:
  • Omitting -p when parent folder doesn't exist
  • Creating nested folders incorrectly as one path
  • Running multiple mkdir commands instead of one
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard