如何使用“mkdir”命令在Linux中創建目錄

本指南將向您展示如何使用命令行在Linux內創建新的文件夾或目錄。

您用於創建目錄的命令是mkdir。 本文向您展示了在Linux中創建目錄以及覆蓋所有可用交換機的基本方法。

如何創建一個新目錄

創建新目錄最簡單的方法如下:

mkdir <文件夾名稱>

例如,如果您想在您的主文件夾下創建一個名為test的目錄,請打開一個終端窗口並確保您位於您的主文件夾中(使用cd〜命令 )。

mkdir測試

更改新目錄的權限

創建新文件夾後,您可能希望設置權限,以便只有某個用戶才能訪問該文件夾,或者某些人可以編輯該文件夾中的文件,但其他人只能讀取。

在最後一節中,我向您展示瞭如何創建一個名為test的目錄。 運行ls命令將顯示該目錄的權限:

ls -lt

有可能你會有這樣的一些事情:

drwxr-xr-x 2所有者組4096 Mar 9 19:34測試

我們感興趣的是drwxr-xr-x所有者

d告訴我們測試是一個目錄。

d後面的前三個字符是由所有者名稱指定的目錄的所有者權限。

接下來的三個字符是組名指定的文件的組權限。 再次,選項是r,w和x。 - 意味著有權限丟失。 在上面的示例中,屬於該組的任何人都可以訪問該文件夾並讀取文件,但無法寫入該文件夾。

最後三個字符是所有用戶擁有的權限,並且您可以在上面的示例中看到這些權限與組權限相同。

要更改文件或文件夾的權限,可以使用chmod命令。 chmod命令可讓您指定3個設置權限的數字。

要獲得混合權限,請將這些數字加在一起。 例如,要獲得讀取和執行權限,您需要的編號是5,要獲得讀寫權限,編號為6,並且獲得寫入和執行權限的編號為3。

請記住,您需要指定3個數字作為chmod命令的一部分。 第一個數字用於所有者權限,第二個數字用於組權限,最後一個數字適用於所有人。

例如,要獲得對所有者的完全權限,請在組上讀取和執行權限,並且沒有其他人的權限輸入以下內容:

chmod 750測試

如果您希望更改擁有文件夾的組名,請使用chgrp命令。

例如,假設您想創建公司中所有會計師都可以訪問的目錄。

首先,輸入以下內容創建組帳戶:

groupadd帳戶

如果您沒有創建組的正確權限,則可能需要使用sudo獲得額外的權限,或者使用su命令切換到具有有效權限的帳戶。

現在您可以通過輸入以下內容來更改文件夾的組:

chgrp帳戶<文件夾名稱>

例如:

chgrp帳戶測試

要給賬戶組中的任何人讀取,寫入和執行訪問以及所有者,但只讀給其他人,您可以使用以下命令:

chmod 770測試

要將用戶添加到帳戶組中,您可能需要使用以下命令:

usermod -a -G帳戶<用戶名>

上述命令將帳戶組附加到用戶有權訪問的輔助組列表。

如何創建目錄並同時設置權限

您可以使用以下命令同時創建一個目錄並為該目錄設置權限:

mkdir -m777 <文件夾名稱>

上述命令將創建一個每個人都可以訪問的文件夾。 你很想用這種權限創建任何東西。

創建一個文件夾和任何需要的父母

想像一下,你想創建一個目錄結構,但你不想創建每個單獨的文件夾,並沿著樹的方式工作。

例如,您可能正在為您的音樂創建文件夾,如下所示:

創建rock文件夾,然後是alice cooper和queen文件夾,然後創建說唱文件夾和dr dre文件夾,然後是爵士文件夾,然後創建louisjordan文件夾會很煩人。

通過指定以下開關,您可以即時創建所有父文件夾,如果它們尚不存在的話。

mkdir -p <文件夾名稱>

例如,要創建上面列出的文件夾之一,請嘗試以下命令:

mkdir -p〜/ music / rock / alicecooper

確認目錄是否已創建

默認情況下,mkdir命令不會告訴您您創建的目錄是否已成功創建。 如果沒有錯誤出現,那麼你可以假設它有。

如果您想獲得更詳細的輸出,以便您知道創建了什麼,請使用以下開關。

mkdir -v <文件夾名稱>

輸出將沿著mkdir:created目錄/ path / to / directoryname的行

使用&#34; mkdir&#34; 在Shell腳本中

有時你會希望使用“mkdir”命令作為shell腳本的一部分。 例如,讓我們看看接受路徑的腳本。 當腳本執行時,它將創建文件夾並添加一個名為“hello”的文本文件。

#!/斌/慶典

mkdir $ @

cd $ @

觸動你好

第一行應該包含在您編寫的每個腳本中,並用於顯示這確實是BASH腳本。

“mkdir”命令用於創建文件夾。 第二行和第三行末尾的“$ @”( 也稱為輸入參數 )將被替換為您在運行腳本時指定的值。

“cd”命令轉換到您指定的目錄,最後touch命令創建一個名為“hello”的空文件。

你可以嘗試一下自己的腳本。 為此請按照以下說明操作:

  1. 打開一個終端窗口 (按Alt和T應該這樣做)
  2. 輸入nano createhellodirectory.sh
  3. 在編輯器中輸入上面的命令
  4. 同時按下CTRL和O保存該文件
  5. 通過同時按下CTRL和X來退出文件
  6. 輸入chmod + x createhellodirectory.sh來更改權限
  7. 通過輸入./createhellodirectory.sh測試運行腳本

運行腳本時,將創建一個名為“test”的目錄,如果更改為該目錄( cd test)並運行目錄列表( ls),則會看到名為“hello”的單個文件。

到目前為止很好,但現在再次嘗試運行第7步。

  1. 將出現錯誤,指出該文件夾已存在。

我們可以做許多事情來改進腳本。 例如,如果該文件夾已經存在,我們不會特別在意它存在。

#!/斌/慶典

mkdir -p $ @

cd $ @

觸動你好

如果您將-p指定為mkdir命令的一部分,那麼如果該文件夾已經存在,則不會報錯,但如果該文件夾不存在,則會創建該文件。

正如所發生的那樣,touch命令將創建一個文件,如果它不存在,但如果它確實存在,它只會修改上次訪問的日期和時間。

想像一下touch語句被一個echo語句替換,該語句將文本寫入文件如下:

#!/斌/慶典

mkdir -p $ @

cd $ @

迴聲“你好”>>你好

如果你一次又一次地運行“./createhellodirectory.sh test”命令,那麼測試目錄中名為“hello”的文件會越來越大,其中包含單詞“hello”的行越來越多。

現在,這可能會或可能不會如預期的那樣,但現在讓我們說,這不是預期的行動。 在執行echo命令之前,您可以編寫測試以確保該目錄不存在,如下所示。

#!/斌/慶典

mkdir $ @ 2> / dev / null;

如果[$? -eq 0]; 然後

cd $ @

迴聲“你好”>>你好

出口

科幻

上面的腳本是我處理文件夾創建的首選方法。 mkdir命令創建作為輸入參數傳遞的文件夾,但任何錯誤輸出都發送到/ dev / null(實質上意味著無處)。

第三行檢查前一個命令的輸出狀態,即“mkdir”語句,如果成功,它將執行語句,直到達到“fi”語句。

這意味著如果命令成功,您可以創建文件夾並執行所有您想要的操作。 如果你想要做的事情,如果命令不成功,那麼你可以簡單地輸入一個else語句如下:

#!/斌/慶典

mkdir $ @ 2> / dev / null;

如果[$? -eq 0]; 然後
cd $ @
迴聲“你好”>>你好
出口
其他
cd $ @
迴聲“你好”>你好
出口
科幻

在上面的腳本中,如果mkdir語句有效,那麼echo語句將單詞“hello”發送到名為“hello”的文件的末尾,而如果它不存在,將會創建一個名為“hello”的新文件,你好“在裡面。

這個例子並不特別實用,因為只要總是運行echo“hello”> hello行就可以獲得相同的結果。 這個例子的要點是要證明您可以運行“mkdir”命令,隱藏錯誤輸出,檢查命令的狀態以查看它是否成功,然後在執行“mkdir”命令時執行一組命令是成功的,如果不是,則是另一組命令。