Linux 中的 mkdir 指令及範例

Linux 中的 mkdir 指令用於建立目錄。它是每個 Linux 用戶都應該熟悉的基本命令,因為它在檔案和目錄管理中起著至關重要的作用。 mkdir 指令的基本語法可讓您一次建立一個或多個目錄、設定權限,甚至建立父目錄(如果它們尚不存在)。了解 mkdir 的各種選項和語法可以顯著提高在命令列中管理檔案和目錄時的效率。

本指南將解釋 mkdir 指令的語法,探討其選項,並提供如何在 Linux 系統上的不同場景中使用 mkdir 的實際範例。

mkdir 指令的語法

mkdir 指令最簡單的形式遵循以下語法:

mkdir [OPTION]... DIRECTORY...
  • mkdir 是指示系統建立一個新目錄的指令。
  • [OPTION] 是修改命令行為的可選參數。
  • DIRECTORY 是您要建立的一個或多個目錄的名稱。

mkdir 指令可用的選項

您可以將多個選項與 mkdir 命令一起使用來自訂其功能:

  • -m, –mode=MODE:設定新目錄的檔案模式(權限),通常表示為數字字串,如「755」或「644」。
  • -p, –parents:如果指定的目錄已經存在,此選項可確保不報告錯誤。它還允許根據需要建立父目錄。
  • -v, –verbose:提供詳細輸出,解釋 mkdir 指令正在執行的操作。
  • –help:顯示幫助訊息並退出。
  • –version:輸出版本資訊並退出。

mkdir 指令範例

使用 mkdir 建立簡單目錄

mkdir 指令最簡單、最常見的用法是建立一個新目錄:

mkdir new_directory

在此命令中,new_directory 是您正在建立的目錄的名稱。執行此命令後,將在您目前位置建立名為 new_directory 的新目錄。

使用 mkdir 建立多個目錄

mkdir 指令也可以同時建立多個目錄。操作方法如下:

mkdir dir1 dir2 dir3

該指令中的dir1、dir2、dir3是要建立的目錄的名稱。此命令將在您目前的位置建立這三個目錄。

使用 mkdir 建立具有特定權限的目錄

使用 -m 或 –mode 選項,您可以在建立目錄時指定目錄的權限:

mkdir -m 755 new_directory

此處,建立的 new_directory 的權限設定為“755”,這意味著擁有者可以讀取、寫入和執行,而群組和其他人只能讀取和執行。

使用 mkdir 建立嵌套目錄

-p 或 –parents 選項允許根據需要建立父目錄。例如:

mkdir -p dir1/dir2/dir3

此命令檢查 dir1 和 dir2 是否存在,如果不存在,則建立它們。然後,它在 dir2(位於 dir1 內部)內創建 dir3。

將詳細輸出與 mkdir 一起使用

-v 或 –verbose 選項可讓 mkdir 為它所建立的每個目錄列印訊息,這對於故障排除或確認非常有用:

mkdir -v new_directory

此命令將建立 new_directory,然後列印一條訊息指示其建立。

建立名稱中包含空格的目錄

有時,我們想要建立一個名稱中包含空格的目錄。我們可以透過將目錄名稱括在引號中來實現此目的:

mkdir "new directory"

使用此命令,將建立一個名為 new Directory 的新目錄(「new」和「directory」之間有一個空格)。

檢查 mkdir 的版本

您可以檢查系統上目前安裝的 mkdir 命令的版本。這在出現相容性問題或故障排除時可能會有所幫助。要檢查版本,您可以使用:

mkdir --version

此命令將顯示系統上目前使用的 mkdir 命令的版本資訊。

顯示 mkdir 的幫助

如果您需要使用 mkdir 指令的協助或想要快速檢查其選項,請使用 –help 選項:

mkdir --help

此命令將輸出一條幫助訊息,顯示 mkdir 命令的用法和可用選項。

從文字檔案建立目錄

假設您有一個文字文件,其中包含要建立的目錄名稱清單。您可以使用 xargs 命令和 mkdir 來執行此操作:

xargs mkdir < dir_list.txt

在此命令中,dir_list.txt 是包含目錄名稱清單的文字檔案。該命令將讀取該檔案並使用這些名稱建立目錄。

建立具有完整路徑的目錄

您可以指定要建立目錄的完整路徑。當您想要在目前工作目錄以外的位置建立目錄時,這特別有用:

mkdir /path/to/new_directory

這裡,new_directory是在指定路徑/path/to/中建立的。

建立隱藏目錄

在 Linux 中,任何以點 (.) 開頭的檔案或目錄名稱都被視為隱藏。若要建立隱藏目錄,請使用:

mkdir .hidden_directory

此命令將建立一個名為 .hidden_​​directory 的隱藏目錄。您可以使用 ls -a 查看該目錄。

防止覆蓋現有目錄

-p 或 –parents 選項也可用來防止 mkdir 指令覆寫現有目錄:

mkdir -p existing_directory

使用此命令,如果現有目錄已存在,則不會覆蓋它,從而防止任何潛在的資料遺失。

建立目錄並設定群組ID

g 選項可讓您設定新目錄的群組 ID:

mkdir -m g=group_name new_directory

此命令建立 new_directory 並將其群組 ID 設為 group_name。

建立目錄並將其設為暫存目錄

t 選項可讓您將目錄設為暫存目錄,Linux 對待暫存目錄的方式與標準目錄略有不同:

mkdir -m t new_directory

此命令將建立 new_directory 作為暫存目錄。在臨時目錄中建立的檔案通常會在一段時間內未訪問時被刪除。

製作多層嵌套目錄

-p 選項可用於透過單一命令建立多層嵌套目錄:

mkdir -p Level1/Level2/Level3/Level4

該指令將建立四級目錄。 Level1為頂層目錄,Level4為底層目錄,Level2、Level3為中間目錄。

為使用者、群組和其他人建立具有不同權限的目錄

-m 選項可讓您為使用者、群組和其他人指定不同的權限:

mkdir -m u=rwx,g=rx,o= new_directory

這裡建立的new_directory對使用者(u)有讀、寫、執行權限,對群組(g)有讀取、執行權限,對其他人(o)沒有權限。

以詳細模式建立目錄並忽略錯誤

-v 選項可以與 -p 結合使用來忽略錯誤並提供詳細輸出:

mkdir -pv existing_directory

在此命令中,如果現有目錄已存在,則 mkdir 命令將不會傳回錯誤,而是提供詳細輸出。

建立沒有詳細模式的目錄

如果您想要靜默建立目錄,沒有任何詳細輸出,請使用不含 -v 選項的 mkdir 指令:

mkdir quiet_directory

此指令會建立一個名為 Quiet_directory 的目錄,而不顯示任何訊息。

將大括號擴充與 mkdir 指令結合使用

大括號擴充是 Linux 中的一項強大功能,可以與 mkdir 命令一起使用來建立目錄序列:

mkdir dir{1..5}

此指令將建立五個目錄,名為 dir1、dir2、dir3、dir4 和 dir5。

建立目錄並設定黏滯位

黏滯位元是保護目錄中檔案的權限位元。如果設定了,則只有檔案擁有者或 root 使用者才能刪除或重新命名檔案。以下是建立目錄時設定黏滯位的方法:

mkdir -m +t new_directory

使用此命令,將建立帶有黏性位元設定的 new_directory。

建立目錄並設定 Setuid 和 Setgid 位

setuid 和 setgid 位元可以在建立目錄時設置,這會影響在其中建立的檔案和目錄的所有權。 -m 選項可讓您設定這些位元:

mkdir -m u+s,g+s new_directory

此命令將建立帶有 setuid 和 setgid 位元設定的 new_directory。

使用八進位模式建立不同權限的目錄

雖然我們已經討論了設定權限的符號模式,但 mkdir 指令也支援八進位模式:

mkdir -m 700 private_directory

這裡,建立的 private_directory 的權限設定為「700」(使用者有讀取、寫入和執行權限,群組和其他人沒有權限)。

建立目錄並使其不可變

使目錄不可變可以防止它被刪除,即使是被 root 使用者刪除。首先,我們建立一個目錄,然後使用以下命令使其不可變 chattr 命令:

mkdir new_directory
sudo chattr +i new_directory

這將建立一個 new_directory 並使其不可變。

建立目錄並設定預設 ACL

如果您的檔案系統支援存取控制清單 (ACL),則可以在建立目錄時設定預設 ACL:

mkdir new_directory
setfacl -d -m g::rwx new_directory

在這些指令中,首先建立 new_directory,然後 setfacl 指令將該目錄的預設 ACL 設定為群組的 rwx。

建立目錄並設定 SELinux 上下文

如果您使用的系統啟用了 SELinux,則可以在建立目錄時設定 SELinux 上下文:

mkdir new_directory
chcon -t httpd_sys_content_t new_directory

這裡,先建立new_directory。然後,chcon 指令將 new_directory 的 SELinux 上下文變更為 httpd_sys_content_t。

結論

掌握 mkdir 指令及其各種選項可以大大增強您在 Linux 系統上管理目錄的能力。透過了解其語法並嘗試提供的範例,您可以簡化工作流程並提高命令列效率。無論您是建立單一目錄、多個目錄還是設定特定權限,mkdir 都是任何 Linux 使用者的必備工具。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言