[Linux] mkdirコマンドの使い方 – ディレクトリの新規作成

mkdirコマンドは、Linuxで新しいディレクトリを作成するために使用されます。

基本的な使い方は、mkdir ディレクトリ名です。

複数のディレクトリを一度に作成することも可能で、mkdir dir1 dir2のようにスペースで区切って指定します。

オプションとして、-pを使用すると、親ディレクトリが存在しない場合でも一緒に作成できます。

例えば、mkdir -p /path/to/newdirは、/path/toが存在しない場合でもnewdirを作成します。

この記事でわかること
  • mkdirコマンドの基本的な使い方
  • 各種オプションの活用法
  • エラーの対処方法
  • 応用例による実践的な利用法
  • ディレクトリ作成の効率化方法

目次から探す

mkdirコマンドとは

mkdirコマンドは、LinuxやUnix系のオペレーティングシステムで使用される、ディレクトリを新規に作成するための基本的なコマンドです。

名前は make directory の略で、シンプルながら非常に重要な役割を果たします。

ファイルシステム内でのデータの整理や管理を行うために、ディレクトリを作成することは不可欠です。

mkdirコマンドは、単一のディレクトリを作成するだけでなく、複数のディレクトリを一度に作成したり、親ディレクトリを自動的に作成するオプションも備えています。

これにより、ユーザーは効率的にディレクトリ構造を構築することが可能です。

特に、スクリプトや自動化されたプロセスの中で頻繁に使用されるため、Linux環境での基本的な操作として習得しておくことが重要です。

mkdirコマンドの基本的な使い方

単一のディレクトリを作成する

mkdirコマンドを使用して、単一のディレクトリを作成するのは非常に簡単です。

以下のコマンドを実行することで、指定した名前のディレクトリが作成されます。

mkdir my_directory

このコマンドを実行すると、カレントディレクトリに my_directory という名前の新しいディレクトリが作成されます。

複数のディレクトリを一度に作成する

複数のディレクトリを一度に作成することも可能です。

ディレクトリ名をスペースで区切って指定します。

mkdir dir1 dir2 dir3

このコマンドを実行すると、カレントディレクトリに dir1dir2dir3 という3つのディレクトリが同時に作成されます。

絶対パスと相対パスでのディレクトリ作成

mkdirコマンドでは、絶対パスと相対パスの両方を使用してディレクトリを作成できます。

  • 絶対パス: ルートディレクトリからのパスを指定します。
  mkdir /home/user/new_directory
  • 相対パス: 現在の作業ディレクトリからのパスを指定します。
  mkdir ./new_directory

このように、パスの指定方法によって、ディレクトリの作成場所を柔軟に選択できます。

mkdirコマンドのオプション

-pオプション:親ディレクトリも一緒に作成

-pオプションを使用すると、指定したディレクトリの親ディレクトリが存在しない場合でも、一緒に作成することができます。

これにより、階層構造を一度に作成することが可能です。

mkdir -p /home/user/new_folder/sub_folder

このコマンドを実行すると、 new_folder とその中の sub_folder が同時に作成されます。

親ディレクトリが存在しない場合でも、自動的に作成されます。

-vオプション:作成したディレクトリを表示

-vオプションを使用すると、作成したディレクトリの名前を表示することができます。

これにより、どのディレクトリが作成されたかを確認しやすくなります。

mkdir -v my_directory

このコマンドを実行すると、以下のような出力が表示されます。

mkdir: created directory 'my_directory'

-mオプション:パーミッションを指定して作成

-mオプションを使用すると、ディレクトリを作成する際にパーミッションを指定することができます。

これにより、作成したディレクトリのアクセス権を一度に設定できます。

mkdir -m 755 my_directory

このコマンドを実行すると、 my_directory が作成され、パーミッションが755(所有者に読み書き実行権、グループと他のユーザーに読み実行権)に設定されます。

-Zオプション:SELinuxコンテキストを指定して作成

-Zオプションを使用すると、SELinuxのコンテキストを指定してディレクトリを作成することができます。

これにより、セキュリティポリシーに基づいた適切なコンテキストを設定できます。

mkdir -Z my_directory

このコマンドを実行すると、SELinuxのデフォルトコンテキストが適用された my_directory が作成されます。

特定のコンテキストを指定する場合は、-Zオプションの後にコンテキストを記述します。

エラーとその対処法

ディレクトリが既に存在する場合のエラー

mkdirコマンドを使用して新しいディレクトリを作成しようとした際に、指定したディレクトリ名が既に存在する場合、以下のようなエラーメッセージが表示されます。

mkdir: cannot create directory 'my_directory': File exists

このエラーを回避するためには、以下の方法があります。

  • -pオプションを使用: -pオプションを使うことで、既存のディレクトリがあってもエラーを出さずに処理を続行できます。
  mkdir -p my_directory

パーミッションが不足している場合のエラー

ディレクトリを作成する際に、必要なパーミッションが不足している場合、次のようなエラーメッセージが表示されます。

mkdir: cannot create directory 'my_directory': Permission denied

このエラーが発生した場合の対処法は以下の通りです。

  • sudoを使用: 管理者権限でコマンドを実行するために、sudoを使用します。
  sudo mkdir my_directory
  • 適切なパーミッションを確認: 作成先のディレクトリのパーミッションを確認し、必要に応じて変更します。

パスが無効な場合のエラー

指定したパスが無効な場合、以下のようなエラーメッセージが表示されます。

mkdir: cannot create directory 'invalid/path/my_directory': No such file or directory

このエラーを解決するためには、以下の方法があります。

  • 正しいパスを指定: パスが正しいかどうかを確認し、存在するディレクトリを基準にして指定します。
  • 親ディレクトリを作成: 親ディレクトリが存在しない場合は、-pオプションを使用して一緒に作成します。
  mkdir -p valid/path/my_directory

これにより、無効なパスによるエラーを回避できます。

応用例

複数階層のディレクトリを一度に作成する

mkdirコマンドの-pオプションを使用することで、複数階層のディレクトリを一度に作成できます。

例えば、以下のコマンドを実行すると、指定した階層のディレクトリがすべて作成されます。

mkdir -p /home/user/projects/python/project1

このコマンドにより、 projectspythonproject1 という3つのディレクトリが一度に作成されます。

スクリプト内でmkdirを使用する

Bashスクリプト内でmkdirを使用することで、ディレクトリの自動作成が可能です。

以下は、スクリプト内でディレクトリを作成する例です。

#!/bin/bash
mkdir -p /home/user/new_project
echo "新しいプロジェクト用のディレクトリを作成しました。"

このスクリプトを実行すると、 new_project というディレクトリが作成され、メッセージが表示されます。

mkdirと他のコマンドを組み合わせる

mkdirコマンドは、他のコマンドと組み合わせて使用することができます。

例えば、findコマンドと組み合わせて、特定の条件に合ったファイルを検索し、その結果に基づいてディレクトリを作成することができます。

find /path/to/search -type d -exec mkdir -p /path/to/destination/{} \;

このコマンドは、指定したパス内のすべてのディレクトリを検索し、それに基づいて新しいディレクトリを作成します。

パーミッションを指定してディレクトリを作成する

mkdirコマンドの-mオプションを使用することで、ディレクトリを作成する際にパーミッションを指定できます。

以下の例では、755のパーミッションでディレクトリを作成します。

mkdir -m 755 /home/user/my_secure_directory

このコマンドにより、 my_secure_directory が作成され、所有者に読み書き実行権、グループと他のユーザーに読み実行権が付与されます。

mkdirを使ったディレクトリ構造の自動生成

特定のプロジェクトやアプリケーションのために、あらかじめ決められたディレクトリ構造を自動生成することができます。

以下は、プロジェクト用の基本的なディレクトリ構造を作成する例です。

mkdir -p /home/user/my_project/{src,bin,docs,tests}

このコマンドを実行すると、 my_project 内に srcbindocstests という4つのディレクトリが作成され、プロジェクトの基本的な構造が整います。

これにより、作業を効率的に進めることができます。

よくある質問

mkdirで既存のディレクトリを上書きできますか?

mkdirコマンドは、既存のディレクトリを上書きすることはできません。

指定したディレクトリ名が既に存在する場合、エラーメッセージが表示されます。

もし既存のディレクトリを削除して新たに作成したい場合は、rmdirコマンドやrm -rコマンドを使用して、まず既存のディレクトリを削除する必要があります。

mkdirで作成したディレクトリのパーミッションを後から変更できますか?

はい、mkdirコマンドで作成したディレクトリのパーミッションは、chmodコマンドを使用して後から変更できます。

例えば、以下のコマンドでディレクトリのパーミッションを変更できます。

chmod 755 my_directory

このコマンドを実行すると、 my_directory のパーミッションが755に設定されます。

mkdirコマンドでファイルを作成することはできますか?

mkdirコマンドは、ディレクトリを作成するためのコマンドであり、ファイルを作成することはできません。

ファイルを作成するには、touchコマンドやechoコマンドを使用します。

例えば、以下のようにして新しいファイルを作成できます。

touch my_file.txt

このコマンドを実行すると、 my_file.txt という新しいファイルが作成されます。

まとめ

この記事では、mkdirコマンドの基本的な使い方やオプション、エラーの対処法、応用例について詳しく解説しました。

これにより、ディレクトリの作成や管理に関するさまざまな操作を効率的に行う方法が明らかになりました。

今後は、実際のプロジェクトや日常の作業において、mkdirコマンドを活用してディレクトリ構造を整え、作業の効率を向上させてみてください。

  • URLをコピーしました!
目次から探す