
新Linux入門|rmコマンド徹底解説:強制削除・再帰削除の仕組みと注意点
Linuxで作業していると、「いらないファイルを削除したい」「古いバックアップを消したい」と思うことがありますよね。
そんなときに使うのが rmコマンド です。
ただし、このコマンドはとても強力で、一度削除したファイルは基本的に元に戻せません!
使い方をしっかり理解して、安全に利用することがとても大切です。
ここでは、AlmaLinux 9.6を使って、rmコマンドの仕組み・オプション・注意点をやさしく解説します。

🧨rmコマンドとは?
rm(remove)は、ファイルやディレクトリを削除するためのLinuxコマンドです。
削除されたファイルはゴミ箱に入るわけではなく、完全に消去されます。
| 項目 | 内容 |
|---|---|
| コマンド名 | rm |
| 主な用途 | ファイル・ディレクトリの削除 |
| 削除の特徴 | 即時削除(ゴミ箱なし) |
| 注意点 | 削除後は基本的に復元不可 |
💡 ポイント
Windowsの「削除」と違い、rmで削除したファイルは即座に消滅します。
バックアップを取ってから削除するのが安全です。
⚙️ rmコマンドの書式
rm [オプション] ファイル名またはディレクトリ名| 引数 | 説明 |
|---|---|
| ファイル名 | 削除したいファイルを指定します。複数指定も可能。 |
| ディレクトリ名 | -r オプションを付けて指定することで、フォルダごと削除できます。 |
🛠️ rmコマンドの主なオプション
| オプション | 説明 |
|---|---|
| -i | 削除前に確認を求める(interactive)。誤削除防止に最適。 |
| -r | ディレクトリを再帰的(recursive)に削除。中身ごと削除します。 |
| -f | 強制的に削除(force)。確認なしで削除します。注意が必要です。 |
| -v | 削除した内容を詳細表示(verbose)。削除操作の確認に便利です。 |
💡 組み合わせの例
安全に削除したい場合は、
rm -iv file.txtとすれば、確認付きで削除できます。
📂 rmコマンドの基本的な使い方と出力例
① ファイルを削除する
[suzuki@AlmaLinux ~]$ ls
file1.txt file2.txt
[suzuki@AlmaLinux ~]$ rm file1.txt
[suzuki@AlmaLinux ~]$ ls
file2.txt📘 解説
rm file1.txt でファイルを削除します。
削除後は file1.txt が一覧から消えています。
② 削除時に確認を求める(安全に削除)
[suzuki@AlmaLinux ~]$ rm -i file2.txt
rm: 'file2.txt' を削除しますか? y
[suzuki@AlmaLinux ~]$ ls
(何も表示されない)📘 解説
-i を付けると削除時に確認が入ります。
思わぬ削除ミスを防ぐため、特に初心者はこのオプションを習慣づけるのがおすすめです。
③ ディレクトリを再帰的に削除する
[suzuki@AlmaLinux ~]$ ls
work/
[suzuki@AlmaLinux ~]$ rm -r work/
[suzuki@AlmaLinux ~]$ ls
(空の結果)📘 解説
-r(recursive)を付けると、ディレクトリとその中のすべてのファイルを削除します。
一括削除を行うときに便利ですが、非常に危険でもあります。
④ 確認なしで強制削除
[suzuki@AlmaLinux ~]$ rm -f temp.log📘 解説
-f(force)は確認なしで削除します。
存在しないファイルを指定してもエラーを出さずにスルーします。
スクリプト処理でよく使われますが、誤削除のリスクが非常に高いので注意しましょう。
⑤ 再帰削除+強制削除(最も危険な組み合わせ)
[root@AlmaLinux ~]# rm -rf /⚠️ 絶対に実行してはいけません!
このコマンドは、システム全体を再帰的に強制削除する命令です。
root権限で実行すると、OSが壊れて起動できなくなります。
🧠 rmコマンドが削除を行う仕組み
rmコマンドは、ファイルを物理的に消去するのではなく、
「ディレクトリエントリ(ファイル名とiノードの紐付け)」を削除することで動作します。
| 項目 | 内容 |
|---|---|
| ディレクトリエントリ | ファイル名とiノード番号の対応関係を保持する部分 |
| iノード | ファイルの実体情報(サイズ・所有者・場所など)を管理 |
| 削除動作 | ファイル名とiノードの対応を切ることで「参照不能」にする |
| 実体データ | 他のリンクがない場合は、ディスク上からも削除される |
💬 つまり
- ファイルは「名前」と「実体」に分かれて存在しています。
- rmは「名前」を消して、他にリンクがなければ実体も消す仕組みです。
🧾 rmコマンドの危険なパターンと対策
| 操作例 | 状況 | 危険度 | 対策 |
|---|---|---|---|
| rm -f file.txt | 確認なしで削除 | ★★☆☆☆ | -iオプションを使う |
| rm -r dir/ | ディレクトリごと削除 | ★★★☆☆ | 実行前にlsで中身確認 |
| rm -rf / | システム全削除 | ★★★★★ | 絶対に実行しない |
| rm * | カレントディレクトリ内すべて削除 | ★★★★☆ | 実行前にpwdで場所確認 |
💡 安全対策
- alias rm='rm -i' を設定して、常に確認付き削除にする。
- 大事なファイルは削除前に mv で退避しておく。
- 定期的にバックアップを取る。
✅ まとめ:rmコマンドは便利だけど“最も危険”なコマンド
rmコマンドは、Linuxでファイルやディレクトリを削除するための基本的なコマンドです。
しかし、削除は一瞬・復元は困難という特性を理解して、慎重に扱う必要があります。
💡 覚えておきたいポイント
- rm はファイル名とiノードの対応を削除する仕組み
- 削除したファイルは通常の方法では復元できない
- -r はディレクトリ削除、-f は強制削除。組み合わせは危険!
- 安全に使うなら -i で確認を入れる
安全第一で、rmコマンドを使いこなしましょう。
