溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)mkdir命令怎樣理解

發(fā)布時(shí)間:2022-01-27 12:04:01 來源:億速云 閱讀:195 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章的內(nèi)容主要圍繞Linux系統(tǒng)mkdir命令怎樣理解進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

Linux系統(tǒng)中mkdir命令創(chuàng)建指定的目錄名,要求創(chuàng)建目錄的用戶在當(dāng)前目錄中具有寫權(quán)限,并且指定的目錄名不能是當(dāng)前目錄中已有的目錄。

語(yǔ)法

 mkdir [-p] dirName

參數(shù)說明:

  • -p 確保目錄名稱存在,不存在的就建一個(gè)。

案例演示:

-p 選項(xiàng)

如果 test 目錄不存在,那么會(huì)創(chuàng)建這個(gè)目錄,否則會(huì)提示創(chuàng)建失敗,如下

 ~ $ mkdir test
 mkdir: 無法創(chuàng)建目錄"test": 文件已存在
 12

在命令行提示創(chuàng)建失敗,其實(shí)沒有任何影響,但是在 shell 腳本中就有影響了,這個(gè)命令的退出狀態(tài)是 1,表示執(zhí)行失敗,這會(huì)影響腳本后面的邏輯。那么有沒有辦法,在目錄已經(jīng)存在的情況下,執(zhí)行 mkdir 命令不會(huì)報(bào)錯(cuò)呢?使用 -p 選項(xiàng)

 ~ $ ls -d test
 test
 ~ $ mkdir -p test
 ~ $ echo $?
 0
 12345

可以看到,在 test 目錄存在的情況下,如果使用 -p 選項(xiàng)創(chuàng)建 test 目錄,那么退出狀態(tài)是 0,也就是命令執(zhí)行成功,這在 shell 腳本中非常有用。

-p 選項(xiàng)其實(shí)還有另外一個(gè)作用,那就是創(chuàng)建多級(jí)目錄

 ~ $ ls test/
 hello.c  world.c
 ~ $ mkdir test/dir1/dir2
 mkdir: 無法創(chuàng)建目錄"test/dir1/dir2": 沒有那個(gè)文件或目錄
 ~ $ mkdir -p test/dir1/dir2
 ~ $ tree test
 test
 ├── dir1
 │   └── dir2
 ├── hello.c
 └── world.c
 
 2 directories, 2 files
 12345678910111213

可以看到,如果不使用 -p 選項(xiàng),那么是無法創(chuàng)建多級(jí)目錄的。

指定創(chuàng)建目錄的權(quán)限

通過 -m 選項(xiàng)可以指定創(chuàng)建目錄的權(quán)限,例如

 ~ $ mkdir -m 744 hello
 ~ $ ls -ld hello
 drwxr--r-- 2 david david 4096 9月  29 15:08 hello
 123

我們可以發(fā)現(xiàn) hello 目錄的權(quán)限正好對(duì)應(yīng) 744 ,而并沒有受 umask 值的影響。

這只是創(chuàng)建一級(jí)目錄,如果創(chuàng)建的是多級(jí)目錄呢?

 ~ $ umask
 0022
 ~$
 ~ $ mkdir -p -m 744 hello/world/david
 ~$
 ~ $ ls -ld hello/world/
 drwxr-xr-x 3 umi umi 4096 9月  29 15:16 hello/world/
 ~$
 ~ $ ls -ld hello/world/david/
 drwxr--r-- 2 umi umi 4096 9月  29 15:16 hello/world/david/
 12345678910

通過mkdir -p -m 744 hello/world/david 創(chuàng)建了兩個(gè)目錄 world 和 david,但是只有 david 目錄的權(quán)限才是指定的 744,而 world 目錄是 755,這是因?yàn)?world 目錄受 umaks 影響了。

因此如果在創(chuàng)建多級(jí)目錄時(shí),指定了權(quán)限,那么這個(gè)權(quán)限是賦予了最深的一層目錄,而父目錄的權(quán)限是按系統(tǒng)的方式(受umask影響)。

感謝你的閱讀,相信你對(duì)“Linux系統(tǒng)mkdir命令怎樣理解”這一問題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI