Linux(リナックス)でサーバー管理や開発を行う上で、ディレクトリやファイルの作成・削除は最も基本的な操作です。

使用するコマンドはそれほど多くありませんが、オプションの使い方を知っておくと作業効率が大きく変わります。
特に削除コマンドは取り返しのつかない操作になるため、正しい知識を身につけておくことが大切です。

この記事では、Linuxでのディレクトリ・ファイルの作成・削除方法を、基本的な使い方から便利なオプションまで丁寧に解説していきます。

ディレクトリの作成方法(mkdirコマンド)

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

基本的な書式はこちらです。

# mkdir ディレクトリ名

例えば、「dir01」というディレクトリを作成する場合は以下のようにします。

# mkdir dir01

また、スペース区切りで複数のディレクトリ名を指定すると、一度に複数のディレクトリを作成することもできます。

# mkdir dir01 dir02 dir03

-pオプション:階層の深いディレクトリを一度に作成する

通常、mkdir dir01/dir02を実行すると、親ディレクトリのdir01が存在しない場合はエラーになります。

-pオプションを付けると、途中の階層も含めてまとめて作成してくれます。

# mkdir -p dir01/dir02/dir03

この場合、dir01dir02dir03の3つのディレクトリが一度で作成されます。
階層の深いディレクトリ構造を作りたいときに非常に便利なオプションです。

-mオプション:作成と同時にパーミッションを設定する

-mオプションを使うと、ディレクトリの作成と同時にパーミッション(権限)を設定できます。

# mkdir -m 755 dir01

通常は、ディレクトリを作成した後にchmodコマンドで権限を変更しますが、-mオプションを使えば1コマンドで完了します。

書き込み権限も含めて付与する場合はこちらです。

# mkdir -m 777 dir01

ファイルの作成方法(touchコマンド)

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

基本的な書式はこちらです。

# touch ファイル名

これにより、空の新規ファイルが作成されます。

例えば、「file01.txt」を作成する場合は以下のようにします。

# touch file01.txt

ディレクトリと同様に、スペース区切りで複数のファイルを同時に作成することも可能です。

# touch file01.txt file02.txt file03.txt

-dオプション:指定した日時でファイルを作成する

# touch -d "2025-04-01 10:00" file01.txt

タイムスタンプを特定の日時に設定してファイルを作成できます。

-rオプション:既存ファイルと同じ日時で作成する

# touch -r file01.txt file02.txt

file01.txtと同じタイムスタンプでfile02.txtが作成されます。

touchコマンドの本来の役割

touchコマンドは、本来は「ファイルのタイムスタンプを変更するコマンド」です。
指定したファイルが存在しない場合に空のファイルが新規作成されるという動作を利用して、ファイル作成に使われています。
既存のファイルと同じ名前でtouchコマンドを実行すると、ファイルの中身は変わらずにタイムスタンプだけが更新されるので注意しましょう。

なお、空のファイルを作成するだけでなく、中身も同時に編集したい場合はviエディタを使う方が一般的です。

# vi file01.txt

viコマンドでエディタが開き、ファイルの作成と編集を同時に行えます。

ディレクトリ・ファイルの削除方法(rmコマンド)

ディレクトリやファイルの削除には、rmコマンドを使用します。

基本的な書式はこちらです。

ファイルを削除する場合:# rm ファイル名
ディレクトリを削除する場合:# rm -r ディレクトリ名

ディレクトリを削除する際は、-rオプションを付ける必要があります。
-rを付けることで、ディレクトリの中にあるファイルやサブディレクトリも含めて再帰的に削除されます。

-fオプション:確認メッセージを省略する

rmコマンドを実行すると、削除のたびに「rm: remove directory 'xxxx'? y」と確認メッセージが表示されます。
ファイル数が多い場合はこの確認が煩わしいため、-fオプションを付けて確認を省略するのが一般的です。

ファイルを削除する場合:# rm -f ファイル名
ディレクトリを削除する場合:# rm -rf ディレクトリ名

ワイルドカードを使った一括削除

ワイルドカード(*)を使うと、条件に合うファイルやディレクトリをまとめて削除できます。

# rm -rf *

カレントディレクトリ内のディレクトリとファイルを一括で削除します。

ただし、.htaccessのようなドット(.)で始まるファイルはワイルドカードの対象外です。
ドットファイルも削除したい場合は、別途指定する必要があります。

その他にも、以下のような使い方ができます。

# rm -f *.txt

拡張子が.txtのファイルを一括で削除します。

# rm -f file*.txt

「file」で始まる.txtファイルを一括で削除します。

# rm -rf test*

「test」で始まるディレクトリとファイルを一括で削除します。

また、スペース区切りで複数のディレクトリやファイルを同時に削除することも可能です。

# rm -rf file01.txt file02.txt dir01

rmコマンドを使うときの注意点

rmコマンドは非常に強力なコマンドなので、使い方を誤ると重大なトラブルにつながります。

  • 削除は完全削除であり、元に戻せない
    Windowsのゴミ箱のような仕組みはありません。rmで削除したファイルは復元できないため、実行前に必ず対象を確認しましょう。
  • rm -rf /は絶対に実行しない
    これはルートディレクトリ以下のすべてを削除するコマンドです。現在のLinuxでは--no-preserve-rootオプションを付けないと実行できない安全策が設けられていますが、それでも十分に注意が必要です。
  • ワイルドカードの指定範囲を確認する
    rm -rf *を実行する前に、lsコマンドで削除対象を確認しておくと安全です。カレントディレクトリが正しい場所かどうかもpwdコマンドで確かめましょう。

rmdirコマンドについて

ディレクトリの削除にはrm -rfを使うのが一般的ですが、空のディレクトリだけを安全に削除したい場合rmdirコマンドも使えます。

# rmdir dir01

rmdirは空のディレクトリしか削除できないため、中にファイルが残っている場合はエラーになります。
誤って重要なファイルを削除してしまうリスクを避けたいときに便利です。

まとめ

今回は、Linuxでのディレクトリ・ファイルの作成と削除の方法を紹介しました。

  • ディレクトリの作成にはmkdirコマンドを使う(-pオプションで階層ごと作成可能)
  • ファイルの作成にはtouchコマンドを使う(本来はタイムスタンプ変更用のコマンド)
  • 削除にはrmコマンドを使う(ディレクトリは-rオプション必須)
  • rmコマンドは完全削除なので、実行前に対象を必ず確認する

いずれもLinuxの基本コマンドですが、特にrmコマンドは使い方を間違えると取り返しのつかない結果になります。
lspwdで事前確認する習慣を付けて、安全にサーバーを運用していきましょう。