ファイル操作

Linux rmコマンド入門|ファイルとディレクトリを削除する

Linux rm 基本コマンド

Linux rmコマンド入門
ファイルとディレクトリを削除する

rmコマンドの安全な使い方から、ディレクトリ削除や一括削除まで、注意点とともに解説します。

こんな人向けの記事です

  • ファイルやディレクトリの削除方法を基礎から学びたい方
  • 誤削除を防ぐための安全な使い方を知りたい方
  • 不要ファイルの一括クリーンアップを行いたい方

Step 1rmコマンドの基本

rmコマンドは「remove」の略で、ファイルを削除するコマンドです。Linuxではゴミ箱機能がないため、削除は基本的に取り消せません。

ターミナル
# ファイルを削除
rm file.txt

# 複数ファイルを削除
rm file1.txt file2.txt file3.txt

# ワイルドカードで一括削除
rm *.tmp
rm *.log

# 確認付きで削除(推奨)
rm -i file.txt

注意: Linuxのrmコマンドにはゴミ箱がありません。一度削除したファイルは通常の方法では復元できません。重要なファイルを扱う場合は必ず-iオプションを使いましょう。

Step 2ディレクトリの削除

ディレクトリを削除するには-r(再帰)オプションが必要です。

ターミナル
# 空のディレクトリを削除
rmdir empty_dir/

# ディレクトリを中身ごと削除
rm -r directory/

# 確認付きでディレクトリ削除
rm -ri directory/

# 強制削除(確認なし)
rm -rf directory/

注意: rm -rf /は絶対に実行しないでください。システム全体が削除されます。rm -rfを使う場合は、必ずパスを再確認してから実行しましょう。変数展開を含む場合は特に危険です(例: rm -rf $DIR/ で$DIRが空だとrm -rf /になります)。

Step 3よく使うオプション一覧

rmコマンドの主要なオプションとその使用場面を紹介します。

ターミナル
# 確認付き削除
rm -i file.txt               # 各ファイルで確認

# 詳細表示
rm -v file.txt               # 削除したファイルを表示

# 強制削除(エラー無視)
rm -f nonexistent.txt         # 存在しなくてもエラーにならない

# 安全な組み合わせ
rm -riv directory/            # 再帰+確認+詳細表示
オプション説明
-r, -Rディレクトリを再帰的に削除
-i各ファイル削除前に確認
-I3個以上のファイル削除時に1回確認
-f確認なしで強制削除
-v削除内容を詳細表示
-d空のディレクトリを削除

Step 4安全な削除テクニック

誤削除を防ぐための安全なテクニックを紹介します。

ターミナル
# エイリアスで安全性を高める
alias rm='rm -i'              # 常に確認付きに

# 削除前にlsで確認
ls *.tmp                      # まず対象ファイルを確認
rm *.tmp                      # 確認後に削除

# ゴミ箱代わりのディレクトリを使用
mkdir -p ~/.trash
alias trash='mv -t ~/.trash'
trash unwanted_file.txt       # ゴミ箱に移動

# 変数を使う場合の安全対策
DIR="/path/to/delete"
if [ -n "$DIR" ] && [ -d "$DIR" ]; then
    rm -rf "$DIR"
fi

ベストプラクティス: 本番環境ではrm -rfの代わりにファイルをゴミ箱ディレクトリに移動する方法を採用すると、誤削除時のリカバリーが可能になります。

Step 5実践的な使用例

日常業務でよく使用されるrmコマンドの実践例を紹介します。

ターミナル
# 一時ファイルの削除
rm -f /tmp/*.tmp

# 古いログファイルの削除
find /var/log -name "*.log" -mtime +30 -delete

# ビルド成果物のクリーンアップ
rm -rf build/ dist/ __pycache__/

# macOSのメタデータファイル削除
find . -name ".DS_Store" -delete
find . -name "._*" -delete

# 空のディレクトリを一括削除
find . -type d -empty -delete

# バックアップファイルの削除
rm -f *.bak *.orig *~

findとの連携: 条件付きの削除にはfindコマンドの-deleteオプションが安全で便利です。rmと違い、条件に一致するファイルのみを対象にできます。