Linuxでmkdirコマンドを使ってディレクトリを作成する方法|権限設定や便利なオプションも解説
ポイント
- Linuxでターミナルウィンドウを開きます。
- 新しいディレクトリを作成したいフォルダへ移動します。
- mkdir ディレクトリ名という形式でコマンドを入力します。
この記事では、Linuxでmkdirコマンドを使ってディレクトリを作成する方法を解説します。あわせて、mkdirで使える各種オプション(スイッチ)や、コマンドを正しく実行するための構文についても取り上げます。
新しいディレクトリを作成する方法
Linuxでは、コマンドラインからmkdirコマンドを実行するだけで、新しいディレクトリ(フォルダ)を作成できます。
たとえば「test」という名前のディレクトリを作成したい場合は、ターミナルを開き、目的の場所に移動してから次のコマンドを入力します。
mkdir test

これで、カレントディレクトリ内に「test」フォルダが新しく作成されます。
新しいディレクトリのパーミッションを変更する
フォルダを新規作成した後は、パーミッション(アクセス権)を設定しておきましょう。特定のユーザーだけがアクセスできるようにしたり、一部の人にはファイルの編集を許可しつつ、それ以外の人には読み取り専用権限のみを与えたりできます。
先ほどの例を続けて、「test」フォルダのパーミッションを確認するには、lsコマンドを実行します。
ls -lt

testフォルダがある場所でlsコマンドを実行してください。ホームディレクトリで作業している場合(cdコマンドで移動していない場合)は、ここでディレクトリを移動する必要はありません。
実行すると、次のような出力が表示されます(実際には他のフォルダの情報も一緒に表示されるはずです)。
drwxr-xr-x 2 owner group 4096 Jan 22 10:43 test
この出力のうち、d、rwxr-xr-x、2、owner、groupといった部分が、パーミッションに関する重要な情報です。
- 先頭の「d」は、testがディレクトリであることを示しています。
- その次の3文字は、所有者(owner)に対する権限です。rは読み取り(read)、wは書き込み(write)、xは実行(execute=フォルダへのアクセス)を意味します。
- 続く3文字は、グループ(group)に対する権限です。選択肢はr・w・xで、ハイフン(-)はその権限がないことを表します。上の例では、グループに属するユーザーはフォルダにアクセスしてファイルを閲覧できますが、書き込むことはできません。
- 最後の3文字は、その他すべてのユーザーに対する権限で、考え方はグループ権限と同じです。
ファイルやフォルダのパーミッションを変更するには、chmodコマンドを使います。chmodでは、権限を3桁の数字で指定します。
- 読み取り = 4
- 書き込み = 2
- 実行 = 1
複数の権限を組み合わせる場合は、数字を合計します。たとえば「読み取り+実行」なら5(4+1)、「読み取り+書き込み」なら6(4+2)となります。
chmodコマンドでは必ず3つの数字を指定します。1つ目が所有者の権限、2つ目がグループの権限、3つ目がその他全員の権限です。
たとえば、所有者にはフル権限を、グループには読み取りと実行を、それ以外のユーザーには一切の権限を与えたくない場合は、次のように入力します。
chmod 750 test
フォルダの所有グループを変更したい場合は、chgrpコマンドを使用します。たとえば、会社の経理担当者だけがアクセスできるディレクトリを作りたい場合は、まず次のコマンドで「accounts」というグループを作成します。
groupadd accounts
グループを作成する権限がない場合は、sudoで特権を取得するか、suコマンドで適切な権限を持つアカウントに切り替えてください。
次に、フォルダのグループを変更します。
chgrp accounts test
所有者とaccountsグループのメンバーには読み取り・書き込み・実行の全権限を与え、それ以外のユーザーには読み取り専用権限を設定するには、次のコマンドを使います。
chmod 770 test
ディレクトリの作成とパーミッション設定を同時に行う
次のように-mオプションを使えば、ディレクトリの作成とパーミッションの設定を同時に行うことができます。
mkdir -m777 ディレクトリ名
この例では、誰でもアクセスできるフォルダが作成されます。ただし、このように緩い権限でフォルダを作成することはまれで、通常は用途に応じてより限定された権限を設定します。
必要な親フォルダもまとめて作成する
-pオプションを使うと、個々のフォルダを順番に作成しなくても、ディレクトリ階層を一気に作成できます。たとえば、音楽ファイル用に次のようなフォルダ構成を作りたいとします。
- /home/music/rock/alicecooper
- /home/music/rock/queen
- /home/music/rap/drdre
- /home/music/jazz/louisjordan
通常の方法では、rockフォルダを作ってからalicecooperとqueenのフォルダを作り、さらにrapやjazzのフォルダも順に作成していく必要があり、かなり手間がかかります。
-pオプションを指定すれば、存在しない親フォルダも自動的にすべて作成されます。
mkdir -p ~/music/rock/alicecooper
このコマンド1つで、music・rock・alicecooperの各フォルダが存在しない場合にまとめて作成されます。
ディレクトリが作成されたことを確認する
デフォルトでは、mkdirコマンドはディレクトリの作成に成功しても何も表示しません。エラーが出力されなければ成功したと考えて問題ありません。しかし、何が作成されたのか詳細な出力を確認したい場合は、-vオプションを使用します。
mkdir -v ディレクトリ名
出力は次のようになります。
mkdir: created directory '/path/to/directoryname'
シェルスクリプトでmkdirを使う
mkdirコマンドは、シェルスクリプトの中でも使用できます。たとえば、パスを受け取ってフォルダを作成し、その中に「hello」というテキストファイルを1つ追加するスクリプトは、次のように書けます。
#!/bin/bash
mkdir $@
cd $@
touch hello
- 1行目の「#!/bin/bash」は、すべてのスクリプトに記述すべきお決まりの行で、これがBASHスクリプトであることを示します。
- mkdirがフォルダを作成します。
- 2行目と3行目の末尾にある$@(入力パラメータとも呼ばれます)は、スクリプト実行時に指定した値に置き換えられます。
- cdは、指定したディレクトリへ移動します。
- touchは、「hello」という空のファイルを作成します。
-
LinuxとmacOSでfdコマンドを使ってファイルを素早く検索する方法
fdは、従来のfindコマンドのシンプルな代替ツールです。簡潔な構文と短いコマンド体系を採用しており、入力の手間を大幅に減らせるのが特徴です。ただし、その簡潔さゆえに、初めて見たときには意味が分かりにくいという側面もあります。さらにfdは、標準のfindコマンドよりもパターンマッチングを高速に実行できる点も魅力です。この記事では、LinuxおよびmacOSでfdを使う方法を詳しく解説します。 Linuxへのfdのインストール fdは、デフォルトでインストールされているシステムは多くありません。お好みのパッケージマネージャーでダウンロード・インストールすれば、ターミナルからすぐに利用できるよう
-
Linuxのssコマンドでネットワーク接続を監視する方法【基本から実践テクニックまで】
Linuxを使っていると、ネットワークの状態をもっと詳しく知りたい場面に必ず出会います。そうしたニーズに応えられるツールは数多く存在しますが、中には扱いが複雑なものもあります。ssコマンドは多くのLinuxマシンに標準でインストールされているため、その使い方を知っておくと非常に便利です。ssコマンドとは?2文字だけのコマンド名は一見謎めいて見えますが、実際はとてもシンプルです。多くのLinux/Unixコマンドと同じように、コマンド名はその機能を表す略語になっています。「ss」は「Socket Statistics(ソケット統計)」の略です。Socket Statisticsは、従来のnets