一部の項目へのアクセス権がないため…でMacのゴミ箱が空にできないときの対処法

  • 公開日:2013/12/12
この記事は最終更新日から10年以上が経過しています。

MacBook Airの容量が圧迫されてきたのでゴミ箱を空にしようとしたところ、「一部の項目へのアクセス権がないため、操作は完了できません。」というメッセージが出て空にできませんでした。
mac_trash_empty03
調べてみたところ、ターミナルからコマンドで空に出来ることがわかりました。
さっそくコマンドを実行してみましたが、上手くいきませんでした。いろいろと悪戦苦闘した結果、注意しなくちゃいけない点があったので備忘録を残しておきます。

Mac OSXでrootユーザを有効にする

コマンドの実行にはrootユーザが有効になっている必要があります。OSのアップデートなどが原因でrootユーザが無効になってしまうことがあるそうです。

[手順]

1. Appleメニューから「システム環境設定」を選択
2. 「表示」メニューから「ユーザとグループ」を選択
3. カギをクリックし、管理者アカウントで認証
4. 「ログインオプション」をクリック
5. 右下の「接続」ボタンをクリック
mac_trash_01
6. 「ディレクトリユーティリティを開く」をクリック
mac_trash_02
7. 「ディレクトリユーティリティ」ウィンドウのカギをクリック
mac_trash_03
8. 管理者アカウント名とパスワードを入力して「OK」をクリック
9. 画面上のメニューから「編集」>「ルートユーザを有効にする」を選択
10. 利用するルートパスワードをパスワードフィールドとその確認用フィールドに入力して「OK」をクリック

これでターミナルからrootユーザとしてゴミ箱内のファイル操作が出来るようになりました。
じゃ、次いってみよう。

「ゴミ箱」は複数ある

ターミナルで

sudo rm -rf /.Trashes/*

と実行したら完了!めでたしめでたし。というわけにはいきません。
なぜなら、画面上ひとつに見えるゴミ箱は実はドライブごとであったり、ユーザごとであったりするため、それぞれのゴミ箱を掃除しなければ完全に空にすることはできないのです。
というわけで、必要に応じて以下のように分別されたデータをそれぞれ消していきます。

1. 起動ディスク内のアプリケーションやユーザ領域以外のデータ
2. 外付けハードディスクなど他のドライブのデータ
3. ユーザごとのドキュメントやデスクトップなどのデータ

sudo rm -rf /.Trashes/*
sudo rm -rf /Volumes/ドライブ名/.Trashes/*
sudo rm -rf /Users/ユーザ名/.Trash/*

これでようやくゴミ箱を完全に空にすることができました。

2014.06.03 追記
ドライブ名やユーザ名に半角スペースを含む場合、例えば「abc def」だとしたら、スペースの前にエスケープ文字「\」を入力します。

sudo rm -rf /Volumes/abc\ def/.Trashes/*