ファイルとディレクトリを安全に削除する

LinuxBeginner
オンラインで実践に進む

はじめに

何かを作るのは楽しいことですが、ときには後片付けが必要になります。

Windows や macOS では、削除したファイルは「ごみ箱」に移動され、後から復元できます。 Linux は異なります。 ターミナルでファイルを削除すると、そのファイルは即座に、完全に消えます。

Linux の rm コマンドは、シュレッダーだと考えてください。ファイルを入れた後に、「元に戻す」ボタンはありません。

コマンドラインの強力さが危険に感じられる、最初の場面の一つです。シェルは通常、「本当に実行しますか?」とは確認しません。確認するように設定されたツールを使っている場合を除き、Linux は入力した内容をそのまま実行するものと考えます。

この実験では、次の操作を学びます。

  1. 個別のファイルを削除する(rm)。
  2. 空のフォルダーを安全に削除する(rmdir)。
  3. 中身のあるフォルダーを強制的に削除する(rm -rf)。

ファイルを削除する

まずは、1 つのファイルを削除してみましょう。

最初に、現在の内容を確認します。

ls -l

file_to_delete.txt が表示されます。

次に、このファイルをシュレッダーにかけます。ここでは、remove の短縮形である rm コマンドを使います。

rm file_to_delete.txt

成功した場合、ターミナルには何も表示されません。削除処理がそのまま実行されます。

ファイルが残っていないことを確認します。

ls -l

ファイルが消えていれば成功です。

重要: Enter キーを押す前に、必ずファイル名を再確認してください。削除を取り消すことはできません。

この注意は初心者だけに必要なものではありません。経験豊富な管理者でも、破壊的なコマンドを実行する前には慎重に確認します。特に、root として作業している場合や、ワイルドカードを使用している場合は注意が必要です。

空のディレクトリを削除する

次に、ディレクトリを削除してみましょう。empty_dir という名前のフォルダーがあります。

空のフォルダーを削除するために、Linux には rmdir(Remove Directory)という安全なコマンドが用意されています。

rmdir empty_dir

削除されたことを確認します。

ls -F

削除できました。ただし、rmdir は中に何か入っているディレクトリの削除を拒否します。これは安全ロックのような仕組みです。

data_dir(ファイルが入っているディレクトリ)に対して実行してみましょう。

rmdir data_dir

次のエラーが表示されます。

rmdir: failed to remove 'data_dir': Directory not empty

これは、Linux が誤ったデータ削除から保護しているためです。

この動作により、rmdir は比較的安全なコマンドになっています。ディレクトリがすでに空の場合にだけ動作するため、安全上の境界が組み込まれた削除コマンドが必要なときに便利です。

再帰的に削除する

フォルダー全体を、中身も含めて削除したい場合があります。

フォルダーと、その中にあるすべての内容を削除するには、rm に 2 つの強力なオプションを付けます。

  1. -r(Recursive):すべてのサブフォルダーの中にも入って処理する。
  2. -f(Force):確認を求めずに実行する。

この 2 つを組み合わせた rm -rf は、「ブルドーザー」のようなコマンドです。

この組み合わせは強力で、誤って使いやすいため、Linux の文化の中でもよく話題になります。入力を少し間違えるだけで削除対象が完全に変わる可能性があるため、rm -rf は非常に慎重に扱われています。

data_dir を削除してみましょう。

rm -rf data_dir

削除されたことを確認します。

ls

すべて消えていれば成功です。

警告: rm -rf は Linux で最も危険なコマンドです。間違ったフォルダーに対して実行すると、簡単に復元することはできません。必ず入力した名前を再確認してください。

ここでのより重要な教訓は、コマンドの対象範囲です。破壊的なコマンドで Enter キーを押す前に、シェルが実際にどのパスとパターンを対象として処理するのかを正確に確認してください。

まとめ

これで、システムを整理する方法を学びました。

  • rm file:シュレッダー(ファイル用)。
  • rmdir dir:安全な削除(空のフォルダー用)。
  • rm -rf dir:ブルドーザー(中身のあるフォルダー用)。

大きな力には、大きな責任が伴います。rm -rf は慎重に使いましょう。

このモジュールの最後の実験では、ワイルドカードを使って複数のファイルをまとめて選択する方法を学びます。