1. 程式人生 > >在 Linux 下用 mkdir 命令來建立目錄和子目錄

在 Linux 下用 mkdir 命令來建立目錄和子目錄

mkdir 是什麼呢

Mkdir 是一個用來在 Linux 系統下建立目錄的命令。此命令屬於內建命令。

執行 mkdir 命令

你可以在你的控制檯直接鍵入 mkdir 來使用它。

  1. $ mkdir

預設情況下,不帶任何引數執行 mkdir 命令會在當前目錄下建立目錄。下面是參考示例:

mkdir command

mkdir command

從上圖看出,我們建立了名為 office 的目錄。當我們執行 mkdir 命令時,我們位於 /home/pungki 目錄。所以這個新目錄 office 建立在/home/pungki目錄下。如果我們使用絕對路徑 - 例如:/usr/local - , 則 Linux 會在 /usr/local

目錄下建立一個目錄。

當 Linux 發現想要建立的目錄已經存在, 那麼 Linux 會提示我們 Linux 無法建立它。

mkdir directory exist

mkdir directory exist

另外一個建立目錄的首要條件是, 在想要建立目錄的目標路徑下你必須具有訪問許可權。當你無法取得許可權時 mkdir 會報告這個錯誤。

mkdir permission denied

mkdir permission denied

建立多個目錄

我們也可以同時建立多個目錄。比如我們要建立的目錄有 ubuntu, redhat 和 slackware。那麼語法會像這樣子:

  1. $ mkdir ubuntu redhat slackware

create multiple directories

create multiple directories

新增包含子目錄的目錄 [譯註:遞迴地建立目錄]

當你要建立的目錄包含子目錄時,你需要使用 -p 引數。如果 mkdir 找不到父目錄,那麼這個引數會首先幫助建立父目錄。比如說我們要建立名為 letter 的目錄,在它的目錄下包含有子目錄 important。那麼語法會像這樣子:

  1. $ mkdir -p letter/important

mkdir sub-directory

mkdir sub-directory

設定訪問許可權

使用 -m 引數,我們可以給即將生成的新目錄設定許可權。示例如下:

  1. $ mkdir -m=r-- letter

上面的命令會建立一個名為 letter 的目錄,同時為目錄所有者、使用者組和其他使用者

針對該目錄賦予只讀許可權

mkdir set privilege

mkdir set privilege

列印建立目錄的過程資訊

如果我們要檢視資訊,我們可以使用 -v 引數來實現。示例如下:

  1. $ mkdir -v ubuntu redhat slackware

mkdir verbose

mkdir verbose

總結

Mkdir 命令也屬於一個最基礎的命令,對於想要學習 Linux 的朋友這個命令必須掌握。像往常一樣,你可以鍵入man mkdirmkdir --help來顯示 mkdir 的手冊頁面和更加深入的探討。

最後附上鳥哥的總結:

[[email protected] ~]# mkdir [-mp] 目錄名稱
選項與引數:
-m :配置檔案的許可權喔!直接配置,不需要看預設許可權 (umask) 的臉色~
-p :幫助你直接將所需要的目錄(包含上一級目錄)遞迴建立起來!

範例:請到/tmp底下嘗試建立數個新目錄看看:
[[email protected] ~]# cd /tmp
[[email protected] tmp]# mkdir test    <==建立一名為 test 的新目錄
[[email protected] tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <== 沒辦法直接建立此目錄啊!
[[email protected] tmp]# mkdir -p test1/test2/test3/test4
# 加了這個 -p 的選項,可以自行幫你建立多層目錄!

範例:建立許可權為rwx--x--x的目錄
[[email protected] tmp]# mkdir -m 711 test2
[[email protected] tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
# 仔細看上面的許可權部分,如果沒有加上 -m 來強制配置屬性,系統會使用預設屬性。
# 那麼你的預設屬性為何?這要透過底下介紹的 umask 才能瞭解喔! ^_^