Billboard Ads

👨‍💻Explanations & Visual Hints

Managing directories (folders) is a basic yet powerful skill in Linux. This guide teaches you step-by-step how to create multiple directories with different methods, scenarios, and command-line switches using mkdir, xargs, date, loops, and more.


Table of Contents

  • 1. Basic Multiple Directory Creation
  • 2. Bulk Directory Creation Using Brace Expansion
  • 3. Creating Directories in a Specific Path
  • 4. Creating Nested Directories Using -p
  • 5. Creating Directories from a File (Input File Method)
    • xargs -a method (with full explanation)
    • while read loop method
  • 6. Date-Based Directory Creation
  • 7. mkdir Command Options & Tips

1. Basic Multiple Directory Creation

mkdir dir1 dir2 dir3

Output:

$ ls
  dir1  dir2  dir3

Explanation:

  • mkdir = make directory.
  • You can pass multiple folder names.

2. Bulk Directory Creation Using Brace Expansion

mkdir folder{1..10}  # folder1 to folder10
mkdir log_{A..Z}     # log_A to log_Z

Why it's useful:

  • Saves typing.
  • Works with patterns (e.g., folder2025_{01..12}).

Creating Directories in a Specific Location

mkdir /home/yourname/projects/{api,web,mobile}

Note:

  • Creates folders under /home/yourname/projects.

Create Nested Directories with -p

mkdir -p reports/2025/may/week1

Explanation:

  • -p = create parent directories if they don't exist.
  • Prevents errors when creating deep structures.

Output:

reports/
  ├── 2025/
  │   ├── may/
  │   │   └── week1/
  

Creating Directories from a File (Input File Method)

📄 Input File Example (folders.txt):

logs
backups
images
scripts
configs

Method 1: Using xargs -a

xargs -a folders.txt mkdir
What is xargs -a?
  • xargs builds and executes command lines from input.
  • -a tells it to read from a file directly.
Example Breakdown:
$ cat folders.txt | xargs mkdir

Same as:

xargs -a folders.txt mkdir

What it does:

  • Reads each line of folders.txt.
  • Passes it to mkdir.

Method 2: Using while read loop

while IFS= read -r dir; do
mkdir "$dir"
done < folders.txt

Why this is useful:

  • More control.
  • Can validate folder names inside the loop.

Date-Based Directory Creation

Today's Date:

mkdir "$(date +%F)"  # Example: 2025-05-08

Past 7 Days:

for i in {0..6}; do
mkdir "$(date -d "-$i day" +%F)"
done

Creates folders like:

2025-05-08
2025-05-07
...
2025-05-02

Custom Format:

mkdir "$(date +%d-%b-%Y)"  # e.g., 08-May-2025

⚙️ 7. mkdir Options You Should Know

Option Meaning
-p Create parent folders recursively
-v Verbose mode (show what's being created)
-m Set permission mode (e.g., -m 755)

Example:

mkdir -pv -m 755 projects/api/{v1,v2}

Output:

mkdir: created directory 'projects'
mkdir: created directory 'projects/api'
mkdir: created directory 'projects/api/v1'
mkdir: created directory 'projects/api/v2'

Have questions or want help with scripts? Drop them in the comments!