2026年5月25日
2026年5月25日
rmコマンドでファイル・ディレクトリを削除する方法
はじめに
rm コマンドはLinuxでファイルやディレクトリを削除するコマンドです。Windowsのゴミ箱と違い、削除したファイルは基本的に復元できないため、特にサーバー環境での使用は細心の注意が必要です。
rm -rf / のような誤操作はシステム全体を破壊しかねません。しかし正しい知識と使い方を身につければ、安全かつ効率的にファイル管理ができます。本記事では安全な削除方法とベストプラクティスを解説します。
症状・背景
rm コマンドが必要になる主な場面:
- 不要になったログファイルやテンポラリファイルを削除したい
- ディレクトリごと削除したい
- 古いバックアップファイルをまとめて削除したい
rm -rfを安全に使いたい
手順・設定方法
ステップ1: 基本的なファイル削除
# ファイルを削除
rm file.txt
# 複数ファイルを削除
rm file1.txt file2.txt file3.txt
# ワイルドカードで削除(注意:実行前に ls で確認推奨)
ls *.log # まず確認
rm *.log # 確認後に削除
ステップ2: ディレクトリの削除
# 空のディレクトリを削除(rmdirの代替)
rm -d emptydir/
# ディレクトリを中身ごと再帰削除(-r: recursive)
rm -r /tmp/myapp/
# 確認なしで強制削除(-f: force)
rm -f locked_file.txt
# 再帰+強制削除(最もよく使われる組み合わせ)
rm -rf /tmp/build_cache/
ステップ3: 安全な削除のベストプラクティス
# ① 削除前に必ずlsで確認
ls -la /var/log/app/
rm -rf /var/log/app/old_logs/
# ② 確認プロンプト付きで削除(-i: interactive)
rm -i important_file.txt
# ③ 3つ以上のファイルを削除する際は確認(-I)
rm -I *.conf
# ④ echo でコマンドを確認してから実行
echo rm -rf /tmp/old/ # → 実際には削除せず表示だけ
rm -rf /tmp/old/ # → 確認後に実行
# ⑤ 変数展開の危険性を避ける($変数が空の場合の対策)
TARGET="/tmp/cache"
[ -n "$TARGET" ] && rm -rf "$TARGET" # -n: 空でないことを確認
ステップ4: ゴミ箱代替ツールの活用
# trash-cliをインストール(Ubuntu/Debian)
sudo apt install trash-cli
# ファイルをゴミ箱に移動(復元可能)
trash-put file.txt
# ゴミ箱の中身を確認
trash-list
# ゴミ箱を空にする
trash-empty
# .bashrcでrmをtrashに置き換えるエイリアス設定
echo "alias rm='trash-put'" >> ~/.bashrc
source ~/.bashrc
注意事項
rm -rf /は絶対に実行しない。--no-preserve-rootオプションがない限り保護されているが、rm -rf /*は保護対象外で全ファイルが削除される- 変数を使った
rm -rf $DIR/は$DIRが空の場合にrm -rf /と同等になる危険がある。必ず変数の内容を確認してから実行すること - 本番サーバーでの大量削除前はバックアップを確認し、可能であればステージング環境でテストする
- rootユーザーで作業する際は特に慎重に。一般ユーザーで作業できる範囲はそちらで対応する
まとめ
1. 基本削除: rm file.txt でファイルを削除(復元不可)
2. ディレクトリ削除: rm -rf dir/ で中身ごと削除
3. 安全確認: rm -i で削除前に確認プロンプト
4. 事前確認: ls で対象ファイルを確認してから削除実行
5. ゴミ箱活用: trash-cli で誤削除を防止(開発・学習環境推奨)
関連記事: