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 で誤削除を防止(開発・学習環境推奨)

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ