【初心者向け】mkdirコマンド「フォルダ作成」- コピペで試せるオプション理解 -【Linuxコマンド入門 #4】

前回(#3)は、作業ディレクトリを移動する cd コマンドについて学びました。

cd コマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【初心者向け】cdコマンド 「ディレクトリ移動」change directory – コピペで試せるオプション理解 -【Linuxコマンド入門 #3】

directory移動を行う cdコマンドについて、よく使うオプションを優先的に紹介します。linux ubuntu terminal command をマスターする。

UBUNTU-linuxコマンド入門シリーズのサムネイル。この記事シリーズでは、よく使うコマンドを優先的に紹介し、シリーズを通して最低限コマンドライン操作ができるようになることを目標に紹介しています。 18 記事
シリーズ

Linuxコマンド入門

LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...

前回のコマンドでディレクトリ間を自由に移動できるようになったと思うので、今回はそのディレクトリを新規作成するmkdirコマンドについて紹介します。

mkdir コマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

1. mkdir コマンドとは?

mkdirは “Make Directory” の略で、その名の通り新しいディレクトリ(フォルダ)を作成するためのコマンドです。

WindowsやmacOSで「右クリック → 新規フォルダ作成」の操作を、コマンドラインで行うのがこれに当たります。

2. mkdir の基本的な使い方

使い方は非常にシンプルで、「mkdir [作りたいディレクトリ名]」と入力します。

ls
# memo.txt
mkdir sample_dir  # sample_dirというディレクトリを作成
ls
# sample_dir  memo.txt

これでカレントディレクトリ(今いる場所)に sample_dir という名前の空のディレクトリが作成されます。

2-1. 【最重要】深いディレクトリを一括作成 -p

mkdirのオプションはいくつかありますが、実務・研究で使うのはほぼ一択です。これだけは絶対に覚えてください。

mkdir -p (Parents/Directory name)

-p は “Parents” の略で、「途中の親ディレクトリが存在しなくても、全部まとめて(再帰的に)作成する」という意味です。

例えば、test_dir/child_dir という深い階層のディレクトリを作りたいとします。

オプションなしで実行すると以下のようにエラーが出ます。

mkdir test_dir/child_dir
# [error]
# mkdir: cannot create directory ‘test_dir/child_dir’: No such file or directory

-p オプション付きで実行すると再帰的にディレクトリ生成できます。

# 現在地確認
pwd
# 例: tukumo:test~/test_mkdir

mkdir test_dir/child_dir -p

# 確認例
# tukumo:test~/test_mkdir$ ls
# test_dir
# tukumo:test~/test_mkdir$ cd test_dir
# tukumo:test~/test_mkdir/test_dir$ ls
# child_dir
# tukumo:test~/test_mkdir/test_dir$

3. もっと詳しく見る mkdir の便利オプション

3-1. 詳細表示 -v (Verbose)

Verbose は「おしゃべりな」「詳細な」という意味です。 このオプションを付けると、mkdir実行した内容(どのディレクトリを作成したか)をターミナルに表示してくれます。

-p と組み合わせて mkdir -pv のように使うと、どの階層が新しく作られたかが一目瞭然になるため便利です。

mkdir -pv project/data/raw

# mkdir: created directory 'project'
# mkdir: created directory 'project/data'
# mkdir: created directory 'project/data/raw'

「あれ、ちゃんと作れたかな?」と ls で確認する手間が省けますね。


3-2. 権限付き -m (Mode)

これは少し中級者向けですが、ディレクトリを作成すると同時に、パーミッション(権限)を指定できるオプションです。

例えば、private_dir という「自分(所有者)だけが読み書き・実行できる」ディレクトリを作りたい場合、通常は mkdirchmod の2つのコマンドが必要です。

mkdir private_dir
chmod 700 private_dir # 権限を変更

しかし -m を使えば、これを一度に実行できます。

$ mkdir -m 700 private_dir
$ ls -ld private_dir
drwx------ 2 user group 4096 Nov 13 13:10 private_dir

700 は「所有者(7)はRWX、グループ(0)は不可、その他(0)も不可」という意味の数値指定です。

(これは ,#14 「権限」で詳しく説明します。)

Linuxの権限について、初心者向けに紹介。 読み取り書き込み実行権限についてどのように見るのかについて細かく見てみましょう。

【初心者向け】ls -lとwhoamiコマンド「権限を理解する」- “Permission denied”の謎を解く -【Linuxコマンド入門 #14】

linux入門「権限」の見方を知る。"Permission denied" の「原因」が特定できるようになる。ls-lの権限項目の見方を紹介します。


実務では mkdir -p が9割ですが、スクリプト(自動化)の中では mkdir -pvmkdir -m 755 のように、処理内容を明確にするためにこれらのオプションが使われることがあります。

ちょこっと小話:mkdir と rmdir

 mkdir(ディレクトリを作る)コマンドがあれば、当然 rmdir (Remove Directory) という「ディレクトリを削除する」コマンドも初期のUnixから存在しました。

しかし、rmdir は「中身が空のディレクトリ」しか削除できません。

実際の開発現場では「中身ごと全部消したい」という場面がほとんどです。そのため、rmdir はあまり使われなくなり、代わりに rm -r(rmコマンドについては後述します)という、中身ごとごっそり削除するコマンドが使われるようになりました。mkdir が今でも第一線で使われているのに対し、相棒だった rmdir は少し寂しい立ち位置になってしまった、という小話でした。

第4回のまとめ

  • mkdir : ディレクトリ作成
  • mkdir -p: 深いディレクトリを一括作成
  • mkdir -v: 実行の詳細を表示する
  • mkdir -m:権限設定をする

次回予告

お疲れ様でした! 今回は mkdirについて紹介しました。次回(#5)は、ファイルの作成するtouchコマンドについて紹介します。

touchコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【初心者向け】touchコマンド「空ファイルを作る」「タイムスタンプ更新」- コピペで試せるオプション理解 -【Linuxコマンド入門 #5】

Linuxのtouchコマンドとは?この記事では、空のファイル(0バイト)を作成する方法と、既存ファイルの最終更新日時(タイムスタンプ)だけを変更する方法を、初学者向けに分かりやすく解説します。

UBUNTU-linuxコマンド入門シリーズのサムネイル。この記事シリーズでは、よく使うコマンドを優先的に紹介し、シリーズを通して最低限コマンドライン操作ができるようになることを目標に紹介しています。 18 記事
シリーズ

Linuxコマンド入門

LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...