👨💻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!