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,或在有寫入權限的位置建立目錄。

延伸閱讀