前書き
rmコマンドでファイルを削除すると、ファイルは基本的に復元できません。一方、通常WindowsやMac、LinuxでもGUI上で削除を行っても、ゴミ箱を空にしない限り復元できます。
今回はMacベースでこの違いについて整理し、rmコマンド前のバックアップが非常に重要であることを確認します。
Macのゴミ箱とrm
コマンドの違いについて
はじめに
Macでファイルを削除する方法には主に2つあります。
- **Finder(ファインダー)**を使って削除する方法
-
ターミナルで
rm
コマンド(removeの略)を使って削除する方法
この2つは結果が似ていても、実際の動作やリスクが大きく異なります。この記事では、初心者にも分かりやすく、それぞれの仕組みと違いを解説します。
Finderでの削除:ゴミ箱の仕組み
Finderでファイルを削除すると、「ゴミ箱」に入ります。これは単にファイルを隠しディレクトリに移動しているだけで、物理的には削除されていません。
ゴミ箱の実体
削除元ディスク | ゴミ箱のパス |
---|---|
内蔵ディスク(Mac本体) | ~/.Trash/ |
外付けドライブ・USB | /Volumes/<ボリューム名>/.Trashes/<UID>/ |
※ ~
はホームディレクトリ(例:/Users/username/
)を意味します。
※ <UID>
はユーザーIDです(数値例:501など)。
ゴミ箱移動の流れ
┌────────────┐ ┌────────────────────┐
│ Finder操作 │ ───▶ │ ~/.Trash に移動 │
└────────────┘ └────────────────────┘
▼ ゴミ箱を空にする → 完全削除
実際、bashシェルでユーザーのホームディレクトリを確認すると、.Trashディレクトリの存在を確認できます
特徴
- ファイルはすぐには消えない
- 誤って削除しても復元可能
- システムが許す限りゴミ箱内に残る
rm
コマンドでの削除
UNIX系OSであるmacOSにはターミナル操作があります。ここで使われるrm
(remove)コマンドは、ファイルを即時・完全に削除します。Finderのような「ゴミ箱」は関与しません。
主な使用例
rm file.txt # 通常のファイル削除
rm -r mydir/ # ディレクトリを再帰的に削除
rm -f force.txt # 強制削除(確認なし)
┌────────────┐ ┌────────────────────┐
│ ターミナル操作 │ ───▶ │ ディスクから即座に削除 │
└────────────┘ └────────────────────┘
│
▼
通常の手段では復元不可
項目 | Finderでの削除 | rmコマンドでの削除 |
---|---|---|
削除後の挙動 | ゴミ箱に移動 | 即時削除 |
復元可能性 | あり(ゴミ箱から戻せる) | なし(通常の手段では不可) |
安全性 | 高い(誤削除しても安心) | 低い(復元が困難) |
終わりに
上書きに関しても同様ですので、ファイルの上書きの可能性がある場合はバックアップを取得するように心がけると良いでしょう。
バックアップ用のシェルを用意しておくのも良いかと。
#!/bin/bash
# バックアップ先ディレクトリ
BACKUP_DIR="$HOME/backup_$(date +%Y%m%d)"
LOG_FILE="$BACKUP_DIR/backup.log"
# 引数チェック
if [ "$#" -lt 1 ]; then
echo "Usage: $0 <file_or_directory_to_backup>"
exit 1
fi
# バックアップ先ディレクトリを作成
mkdir -p "$BACKUP_DIR"
# バックアップ処理
for TARGET in "$@"; do
if [ -e "$TARGET" ]; then
BASENAME=$(basename "$TARGET")
DEST="$BACKUP_DIR/${BASENAME}_$(date +%H%M%S)"
cp -a "$TARGET" "$DEST"
echo "[✔] Backed up '$TARGET' to '$DEST'" | tee -a "$LOG_FILE"
else
echo "[✘] '$TARGET' does not exist. Skipped." | tee -a "$LOG_FILE"
fi
done
多くの場合は取り返しがつかないことになるので、気をつけましょう。ユーザーの編集権限を明確に定義するのが一番効果的ですが、多くの開発現場ではそうもいかない側面もあると思います。
誤削除は誰にでも起こり得ます。大切なデータを守るためにも、バックアップと操作前の確認を徹底しましょう。