您好,登錄后才能下訂單哦!
這篇文章的內容主要圍繞Linux系統mkdir命令怎樣理解進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
Linux系統中mkdir命令創建指定的目錄名,要求創建目錄的用戶在當前目錄中具有寫權限,并且指定的目錄名不能是當前目錄中已有的目錄。
mkdir [-p] dirName
-p 確保目錄名稱存在,不存在的就建一個。
如果 test 目錄不存在,那么會創建這個目錄,否則會提示創建失敗,如下
~ $ mkdir test mkdir: 無法創建目錄"test": 文件已存在 12
在命令行提示創建失敗,其實沒有任何影響,但是在 shell 腳本中就有影響了,這個命令的退出狀態是 1,表示執行失敗,這會影響腳本后面的邏輯。那么有沒有辦法,在目錄已經存在的情況下,執行 mkdir 命令不會報錯呢?使用 -p 選項
~ $ ls -d test test ~ $ mkdir -p test ~ $ echo $? 0 12345
可以看到,在 test 目錄存在的情況下,如果使用 -p 選項創建 test 目錄,那么退出狀態是 0,也就是命令執行成功,這在 shell 腳本中非常有用。
-p 選項其實還有另外一個作用,那就是創建多級目錄
~ $ ls test/ hello.c world.c ~ $ mkdir test/dir1/dir2 mkdir: 無法創建目錄"test/dir1/dir2": 沒有那個文件或目錄 ~ $ mkdir -p test/dir1/dir2 ~ $ tree test test ├── dir1 │ └── dir2 ├── hello.c └── world.c 2 directories, 2 files 12345678910111213
可以看到,如果不使用 -p 選項,那么是無法創建多級目錄的。
通過 -m 選項可以指定創建目錄的權限,例如
~ $ mkdir -m 744 hello ~ $ ls -ld hello drwxr--r-- 2 david david 4096 9月 29 15:08 hello 123
我們可以發現 hello 目錄的權限正好對應 744 ,而并沒有受 umask 值的影響。
這只是創建一級目錄,如果創建的是多級目錄呢?
~ $ 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 創建了兩個目錄 world 和 david,但是只有 david 目錄的權限才是指定的 744,而 world 目錄是 755,這是因為 world 目錄受 umaks 影響了。
感謝你的閱讀,相信你對“Linux系統mkdir命令怎樣理解”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。