mkdir — 建立目錄
建立新目錄,支援一次建立多層巢狀目錄。
語法
mkdir [選項] 目錄名稱...
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-p, --parents |
建立所有必要的父目錄,若目錄已存在則不報錯 | mkdir -p a/b/c |
-m, --mode=MODE |
設定新目錄的權限(格式同 chmod) | mkdir -m 755 dir |
-v, --verbose |
顯示每個已建立的目錄 | mkdir -v dir |
-Z |
設定 SELinux 安全標籤(如有需要) | mkdir -Z dir |
使用範例
範例 1:建立單一目錄
在當前目錄下建立名為 projects 的新目錄。
$ mkdir projects
範例 2:一次建立多個目錄
在指令後列出多個名稱,一次建立多個目錄。
$ mkdir docs src tests bin
範例 3:建立巢狀目錄(-p)
使用 -p 建立多層目錄,即使中間路徑不存在也會自動建立。
$ mkdir -p ~/projects/myapp/{src,tests,docs}
花括號展開(Brace Expansion)可一次建立多個平行目錄。
範例 4:建立時設定權限
使用 -m 在建立目錄的同時指定存取權限,避免事後再 chmod。
$ mkdir -m 750 private-data
範例 5:建立複雜的目錄結構
搭配花括號展開建立專案常用的目錄樹。
$ mkdir -p project/{frontend/{src,public},backend/{api,models},docs}
範例 6:顯示建立過程
加上 -v 可確認哪些目錄被實際建立(與 -p 搭配很有用)。
$ mkdir -pv logs/{2025,2026}/{01,02,03}
mkdir: created directory 'logs'
mkdir: created directory 'logs/2025'
mkdir: created directory 'logs/2025/01'
mkdir: created directory 'logs/2025/02'
常見錯誤與排錯
mkdir: cannot create directory 'dir': File exists
- 原因
- 指定的目錄已存在。
- 解法
- 加上 -p 選項,若目錄已存在則靜默跳過,不會報錯。
mkdir: cannot create directory 'a/b/c': No such file or directory
- 原因
- 嘗試建立多層目錄但未加 -p,中間的父目錄不存在。
- 解法
- 加上 -p 選項讓 mkdir 自動建立所有必要的父目錄。
mkdir: cannot create directory 'dir': Permission denied
- 原因
- 對目標位置沒有寫入權限。
- 解法
- 使用 sudo mkdir,或在有寫入權限的位置建立目錄。