本指南將向您展示如何使用命令行在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表示執行(在這種情況下表示您可以訪問該文件夾)
接下來的三個字符是組名指定的文件的組權限。 再次,選項是r,w和x。 - 意味著有權限丟失。 在上面的示例中,屬於該組的任何人都可以訪問該文件夾並讀取文件,但無法寫入該文件夾。
最後三個字符是所有用戶擁有的權限,並且您可以在上面的示例中看到這些權限與組權限相同。
要更改文件或文件夾的權限,可以使用chmod命令。 chmod命令可讓您指定3個設置權限的數字。
- 讀取權限= 4
- 寫入權限= 2
- 執行權限= 1
要獲得混合權限,請將這些數字加在一起。 例如,要獲得讀取和執行權限,您需要的編號是5,要獲得讀寫權限,編號為6,並且獲得寫入和執行權限的編號為3。
請記住,您需要指定3個數字作為chmod命令的一部分。 第一個數字用於所有者權限,第二個數字用於組權限,最後一個數字適用於所有人。
例如,要獲得對所有者的完全權限,請在組上讀取和執行權限,並且沒有其他人的權限輸入以下內容:
chmod 750測試
如果您希望更改擁有文件夾的組名,請使用chgrp命令。
例如,假設您想創建公司中所有會計師都可以訪問的目錄。
首先,輸入以下內容創建組帳戶:
groupadd帳戶
如果您沒有創建組的正確權限,則可能需要使用sudo獲得額外的權限,或者使用su命令切換到具有有效權限的帳戶。
現在您可以通過輸入以下內容來更改文件夾的組:
chgrp帳戶<文件夾名稱>
例如:
chgrp帳戶測試
要給賬戶組中的任何人讀取,寫入和執行訪問以及所有者,但只讀給其他人,您可以使用以下命令:
chmod 770測試
要將用戶添加到帳戶組中,您可能需要使用以下命令:
usermod -a -G帳戶<用戶名>
上述命令將帳戶組附加到用戶有權訪問的輔助組列表。
如何創建目錄並同時設置權限
您可以使用以下命令同時創建一個目錄並為該目錄設置權限:
mkdir -m777 <文件夾名稱>
上述命令將創建一個每個人都可以訪問的文件夾。 你很想用這種權限創建任何東西。
創建一個文件夾和任何需要的父母
想像一下,你想創建一個目錄結構,但你不想創建每個單獨的文件夾,並沿著樹的方式工作。
例如,您可能正在為您的音樂創建文件夾,如下所示:
- /家庭/音樂/搖滾/埃利斯·庫珀
- /家庭/音樂/搖滾/王后
- /家庭/音樂/說唱/ drdre
- /家庭/音樂/爵士樂/ louisjordan
創建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”的空文件。
你可以嘗試一下自己的腳本。 為此請按照以下說明操作:
- 打開一個終端窗口 (按Alt和T應該這樣做)
- 輸入nano createhellodirectory.sh
- 在編輯器中輸入上面的命令
- 同時按下CTRL和O保存該文件
- 通過同時按下CTRL和X來退出文件
- 輸入chmod + x createhellodirectory.sh來更改權限
- 通過輸入./createhellodirectory.sh測試運行腳本
運行腳本時,將創建一個名為“test”的目錄,如果更改為該目錄( cd test)並運行目錄列表( ls),則會看到名為“hello”的單個文件。
到目前為止很好,但現在再次嘗試運行第7步。
- 將出現錯誤,指出該文件夾已存在。
我們可以做許多事情來改進腳本。 例如,如果該文件夾已經存在,我們不會特別在意它存在。
#!/斌/慶典
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”命令時執行一組命令是成功的,如果不是,則是另一組命令。