rmでファイルを削除する
rmでファイルを削除する とは
rmコマンドを使って、ファイルやディレクトリを削除する方法を実際に操作します。本レッスンでは、rmでファイルを削除する の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
なぜ重要か
rm は取り消し効かない削除コマンドです。一時ファイルの掃除、古いログの片付け、テストデータの破棄など利用頻度は高いものの、たった一文字の打ち間違いで本番データが消える事故が後を絶ちません。本レッスンでは確実な使い方と、絶対にやってはいけないパターンを押さえます。
クラウド時代でも「rm -rf で本番のデータを丸ごと消した」というインシデントは定期的に話題になります。rm はゴミ箱を経由せず即座にデータへのリンクを外すため、バックアップが無ければ復旧は極めて困難です。だからこそ、このレッスンでは「安全に消す習慣」を最優先で身につけます。
基本構文
ターミナル
rm [オプション] ファイル名 [ファイル名 ...]主要オプションは下記のとおりです。
| オプション | 役割 |
|---|---|
| -i | 1ファイルごとに確認 |
| -I | 3ファイル以上 / 再帰のみ確認 |
| -r | ディレクトリを再帰削除 |
| -f | 強制(確認しない / 存在しなくてもエラーにしない) |
| -v | 何を消したか表示 |
| -d | 空ディレクトリを削除 |
動作の図解
代表例
ターミナル
# ファイル単発削除
$ cd /tmp && touch tmp.txt
$ rm tmp.txt
$ ls tmp.txt 2>&1 | head -1
ls: cannot access 'tmp.txt': No such file or directoryターミナル
# ディレクトリごと削除(-r 必要)
$ cd /tmp && mkdir -p junk/sub && touch junk/sub/x.txt
$ rm -r junk
$ ls junk 2>&1 | head -1
ls: cannot access 'junk': No such file or directoryターミナル
# 拡張子でまとめて掃除
$ cd /tmp && touch a.log b.log c.log
$ rm *.log
$ ls *.log 2>&1 | head -1
ls: cannot access '*.log': No such file or directoryターミナル
# 確認しながら消す
rm -i /tmp/important.txt危険な書き方とその回避
rm -rf / rm -rf ~/* は壊滅的ダメージにつながる典型例です。誤入力対策は次の通りです。
- 削除対象を
lsで先に確認する rm -iかrm -Iを癖にする- スクリプトでは絶対パスを使い、変数展開を二重引用符で囲う
- 重要データは
rmではなく一旦mvでゴミ箱代わりのディレクトリに送る - グロブ
*を使う前に同じ条件でlsを打って中身を確認する
ターミナル
# 二重引用符で安全に
TARGET="/tmp/build_artifacts"
rm -rf "$TARGET"変数が空のときに rm -rf "$TARGET"/ のように書いてしまうと rm -rf / 相当になる、という事故も有名です。空チェックを挟むと安全度が上がります。
ターミナル
if [ -n "$TARGET" ] && [ -d "$TARGET" ]; then
rm -rf "$TARGET"
fi
rmで消したファイルは Linux のゴミ箱には行かず、復元はバックアップが無ければ非常に困難です。打つ前にlsで確認する一拍が事故を防ぎます。
rm -rfを打つ前に深呼吸する、これは新人もベテランも同じです。慎重さは経験で減らない、というのが正解です。
安全な「ゴミ箱化」テクニック
ターミナル
mkdir -p /tmp/trash
mv 削除候補.txt /tmp/trash/
# 数日後にまとめて消すこの方が誤削除のとき復元しやすく、rm の一発勝負を回避できます。デスクトップ環境では trash-cli のようなツールでゴミ箱経由の削除も可能です。
find と組み合わせるときの注意
古いファイルの一括削除は find と組み合わせますが、本実行前に必ず -print で対象を確認します。
ターミナル
# まず確認
find /tmp -name '*.tmp' -mtime +7 -print
# 問題なければ削除
find /tmp -name '*.tmp' -mtime +7 -deleteやってみよう
演習エディタでファイルを作り、rm で削除して ls で消えたことを確認しましょう。rm -r でディレクトリごと消すパターンもぜひ試してください。
まとめ
rmは 取り消し不可 の削除コマンド- ディレクトリには
-rが必要 - 本番では
-i-Iで確認、変数は引用符で守る - 重要データは
mvで待避してからrmする運用が安全 findでの一括削除は-printで対象確認してから-delete
次のレッスン
次は ファイルシステムチェック で、rmコマンドを使って、ファイルやディレクトリを削除する方法を実際に操作します を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- rm コマンド の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. rm コマンド とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
課題
- rm を使う
- erase.txt を削除する
- keep.txt のみが残る