【mkdir】ディレクトリの作成方法

Ubuntuでディレクトリを作成する方法です。

ディレクトリの作成

Ubuntuでディレクトリを作成するにはmkdirコマンドを使用します。

mkdirコマンドの基本的な使い方はmkdirのあとに作成するディレクトリ名を指定します。

mkdir ディレクトリ名

実際にtest_dirというディレクトリを作成して、ls -ldコマンドでディレクトリが作成されていることを確認してみます。

$ mkdir test_dir
$ ls -ld test_dir
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 10:36 test_dir

ディレクトリ名は絶対パスや相対パスでの指定も可能です。

絶対パスでディレクトリ名を指定

絶対パスを指定してのディレクトリ作成例です。

$ mkdir /home/tamohiko/test_dir
$ ls -ld /home/tamohiko/test_dir
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 10:36 /home/tamohiko/test_dir

相対パス指定

相対パスを指定してのディレクトリ作成例です。

/home/tamohiko/test_dir/ディレクトリに一度移動してから、一つ上のディレクトリに相対パスでディレクトリ名を指定してディレクトリ作成します。

$ cd /home/tamohiko/test_dir/
$ mkdir ../test_dir2
$ ls -ld /home/tamohiko/test_dir2
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 10:38 /home/tamohiko/test_dir2

-p オプション 途中のディレクトリも一度に作成

-pオプションを指定してあげると、途中にディレクトリが存在しない場合にそのディレクトリも作成してくれます。

「/home/tamohiko/project/project-a」といったディレクトリを作成するときに、途中の「/home/tamohiko/project」というディレクトリがない場合は下記のようエラーが表示されて、ディレクトリを作製することが出来ません。

$ mkdir /home/tamohiko/project/project-a
mkdir: cannot create directory '/home/tamohiko/project/project-a': No such file or directory

日本語のエラーメッセージはこんな感じです。

$ mkdir /home/tamohiko/project/project-a
mkdir: ディレクトリ `/home/tamohiko/project/project-a' を作成できません: そのようなファイルやディレクトリはありません

-pオプションを指定すると、問題なくディレクトリが作成されます。

$ mkdir -p /home/tamohiko/project/project-a
$ ls -ld /home/tamohiko/project/project-a/
drwxrwxr-x 2 tamohiko tamohiko 4096  6月 30 18:49 /home/tamohiko/project/project-a/

-vオプションをつけてみると、途中のディレクトリも作成されている様子がわかります。

$ mkdir -pv /home/tamohiko/project/project-a/
mkdir: created directory '/home/tamohiko/project'
mkdir: created directory '/home/tamohiko/project/project-a/'

-m オプション パーミッションを設定

-mオプションを指定すると、ディレクトリを作成する際に任意のパーミッションを設定することが出来ます。

mkdir -m パーミッション ディレクトリ

パーミッションの指定方法はchmodコマンドと同じような感じに数字や文字で指定できます。

詳しくは下記のサイトを参照してみてください。

https://www.server-memo.net/tips/command/chmod/chmod.html

数字で指定

パーミッションに700を指定してディレクトリを作成してみます。

$ mkdir -m 700 test_dir 
$ ls -l
total 4
drwx------ 2 tamohiko tamohiko 4096 Jul  1 23:53 test_dir

文字で指定

所有ユーザ(u)は読み込み(r)書き込み(w)実行(x)のすべてを許可し、グループ(g)は読み込み(r)のみ許可、その他のユーザ(o)は何も権限を許可しないという設定を、文字を使用して設定してみます。

$ mkdir -m u=rwx,g=r,o= test_dir2
$ ls -ld test_dir2
drwxr----- 2 tamohiko tamohiko 4096  7月  3 11:10 test_dir2

一度にたくさんのディレクトリを作成

bashの機能であるブレーズ展開を使用すれば、一度に複数のディレクトリを作製することが出来ます。

{}で囲って「,」で区切ることで複数の名前を指定することが出来ます。

mkdir {ディレクトリ1,ディレクトリ2,ディレクトリ3}

log、temp、dataというディレクトリを一回のmkdirコマンドで作成してみます。

$ mkdir {log,temp,data}
$ ls -ld ./*
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:07 ./data
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:07 ./log
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:07 ./temp

{}で囲って「最初..最後」といったように指定すると、連続した名前を設定することが出来ます。

test_01からtest_05という名前のディレクトリを作成してみます。

$ mkdir /home/tamohiko/test_dir/test_{01..05}
$ ls -ld ./test_*
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_01
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_02
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_03
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_04
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_05

数字以外に文字も指定することが出来ます。

test_aからtest_eというディレクトリを作成してみます。

$ mkdir /home/tamohiko/test_dir/test_{a..e}
$ ls -ld ./test_*
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_01
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_02
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_03
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_04
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:11 ./test_05
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:29 ./test_a
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:29 ./test_b
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:29 ./test_c
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:29 ./test_d
drwxrwxr-x 2 tamohiko tamohiko 4096  7月  3 22:29 ./test_e

コメント

タイトルとURLをコピーしました