Linux 命令行完全指南:揭秘 mkdir 命令在 Linux 生產(chǎn)環(huán)境的 “隱藏技能”
在 Linux 操作系統(tǒng)的命令行環(huán)境中,mkdir命令是創(chuàng)建目錄的基礎(chǔ)且實用的工具。其基本語法格式格式為:
[root@localhost ~]# mkdir [OPTION]... DIRECTORY...該命令用于創(chuàng)建由DIRECTORY命名的目錄。若在目錄名前未添加任何路徑名,將在當(dāng)前目錄下創(chuàng)建指定目錄;若指定了已存在的路徑,則會在該路徑下創(chuàng)建相應(yīng)目錄。同時,創(chuàng)建目錄時需確保新建目錄與所在目錄下的文件無重名情況。

命令參數(shù)與選項詳解
參數(shù)選項  | 說明  | 
DIRECTORY ...  | 指定要創(chuàng)建的目錄列表,多個目錄之間用空格隔開。例如mkdir dir1 dir2,可在當(dāng)前目錄下同時創(chuàng)建dir1和dir2兩個目錄。  | 
選項  | |
-p, --parents  | 若所要建立目錄的上層目錄尚未建立,該選項會一并建立上層目錄。比如創(chuàng)建多級目錄devops/test,若devops目錄不存在,直接使用mkdir devops/test會報錯;而使用mkdir -p devops/test,則會自動創(chuàng)建devops目錄及子目錄test。  | 
-m, --mode=MOD  | 建立目錄的同時設(shè)置目錄的權(quán)限。如mkdir -m 333 dir2,創(chuàng)建dir2目錄時將其權(quán)限設(shè)置為333,即所有者、組用戶和其他用戶都只有寫和執(zhí)行權(quán)限 。  | 
-v, --verbose  | 顯示創(chuàng)建目錄的過程。執(zhí)行mkdir -v dir1,命令行將顯示mkdir: created directory 'dir1',方便用戶確認(rèn)目錄創(chuàng)建情況。  | 
-Z, --context=CTX  | 設(shè)置安全上下文,在使用 SELinux 時有效,可將每個創(chuàng)建的目錄的 SELinux 安全環(huán)境設(shè)置為指定的CTX 。  | 
--help  | 顯示此幫助信息并退出,幫助用戶快速了解命令用法和選項功能。  | 
--version  | 顯示版本信息并退出,便于用戶知曉當(dāng)前mkdir命令的版本 。  | 
案例演示
(1) 不使用任何命令參數(shù)創(chuàng)建目錄
直接指定目錄名,在當(dāng)前目錄下創(chuàng)建新目錄。
[root@localhost ~]# mkdir data
[root@localhost ~]# tree -d
.
└── data
1 directory上述操作在當(dāng)前目錄下創(chuàng)建了名為data的目錄,通過tree -d命令可直觀查看目錄結(jié)構(gòu)。
(2) 使用 -p 參數(shù)遞歸創(chuàng)建多級目錄
當(dāng)創(chuàng)建多級目錄且上層目錄不存在時,-p參數(shù)可避免報錯并自動創(chuàng)建所需上層目錄。
# 未使用 -p 參數(shù),報錯示例
[root@localhost ~]# mkdir devops/test
mkdir: cannot create directory ‘devops/test’: No such file or directory
# 使用 -p 參數(shù)成功創(chuàng)建
[root@localhost ~]# mkdir -p devops/test
[root@localhost ~]# tree -d
.
├── data
└── devops
    └── test
3 directories(3) 使用 -m 參數(shù)設(shè)置目錄的默認(rèn)權(quán)限
創(chuàng)建目錄時可利用-m參數(shù)靈活設(shè)置權(quán)限。
# 創(chuàng)建該目錄默認(rèn)權(quán)限為 755
[root@localhost ~]# mkdir dir1
[root@localhost ~]# ls -ld dir1/
drwxr-xr-x. 2 root root 6 Jun 23 22:40 dir1/
# 創(chuàng)建目錄時指定 333 的數(shù)字權(quán)限
[root@localhost ~]# mkdir -m 333 dir2
[root@localhost ~]# ls -ld dir2/
d-wx-wx-wx. 2 root root 6 Jun 23 22:41 dir2/(4) 同時創(chuàng)建多個目錄及多級子目錄
在生產(chǎn)環(huán)境中,常需創(chuàng)建多個目錄及多級子目錄,此時可借助mkdir命令結(jié)合大括號{}的特殊用法高效完成。
# 大括號里用逗號分隔
[root@localhost ~]# mkdir -p devops/{dir1_1,dir1_2}/{dir2_1,dir2_2}
# 上面創(chuàng)建的目錄命令所對應(yīng)的目錄結(jié)構(gòu)如下
[root@localhost ~]# tree -d devops/
devops/
├── dir1_1
│   ├── dir2_1
│   └── dir2_2
├── dir1_2
│   ├── dir2_1
│   └── dir2_2
└── test
7 directories
# {1..5}和{a..g}表示序列
[root@localhost ~]# mkdir -p test/dir{1..5} ops/{a..g}
[root@localhost ~]# tree -d test/ ops/
test/
├── dir1
├── dir2
├── dir3
├── dir4
└── dir5
ops/
├── a
├── b
├── c
├── d
├── e
├── f
└── g
12 directories擴展知識:大括號{}的特殊用法
在{}中使用逗號分隔多個字符或單詞時,配合echo命令可將這些字符或單詞分別輸出到屏幕上。
# 會輸出 B C 到屏幕上
[root@localhost ~]# echo {B,C}
B C
[root@localhost ~]# echo A{B,C}
AB AC
# 如果逗號前無內(nèi)容,可認(rèn)為是一個空字符串
[root@localhost ~]# echo A{,C}
A AC生產(chǎn)案例
在實際生產(chǎn)中,若要對大目錄進行腳本操作,需先搭建模擬環(huán)境復(fù)制目錄結(jié)構(gòu)。
# 顯示所有目錄樹,--noreport 不顯示最后一行統(tǒng)計信息,也可用 find 命令輸出目錄樹
[root@localhost ~]# tree -fid --noreport devops/
devops
devops/dir1_1
devops/dir1_1/dir2_1
devops/dir1_1/dir2_2
devops/dir1_2
devops/dir1_2/dir2_1
devops/dir1_2/dir2_2
devops/test
# 將目錄樹內(nèi)容追加到 root 用戶家目錄下的 devops.txt 文件中
[root@localhost ~]# tree -fid --noreport devops/ >> ~/devops.txt
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# mkdir -p `cat /root/devops.txt`
[root@localhost tmp]# tree devops/
devops/
├── dir1_1
│   ├── dir2_1
│   └── dir2_2
├── dir1_2
│   ├── dir2_1
│   └── dir2_2
└── test
7 directories, 0 files此案例中,利用反引號優(yōu)先執(zhí)行內(nèi)部cat命令讀取文件內(nèi)容,再執(zhí)行mkdir命令,避免了因命令過長帶來的不便,高效創(chuàng)建了所需目錄結(jié)構(gòu)。
掌握mkdir命令的這些用法,能夠幫助我們在 Linux 系統(tǒng)中更便捷、高效地進行目錄管理,無論是日常操作還是生產(chǎn)環(huán)境應(yīng)用,都能游刃有余。















 
 
 






 
 
 
 