USBドライブのゴミ箱を空にする


41

USBドライブをMacに接続しています。USBドライブの.Trashesゴミ箱を空にする(ゴミ箱アイコンを右クリックして[空のゴミ箱 ]を実行する)ときに空になっていないことがわかりました

何が悪いのでしょうか?USBドライブのゴミ箱を空にする他の方法はありますか?


9
興味深いことに、ごみ箱を空にすることは、USBドライブに対して常に正常に実行されます。私の唯一の不満は、USBドライブのごみ箱を空にするだけでよく、システム上のすべてのドライブで空にする必要がないことです。
マシューフレデリック

4
@マシュートライrm -R /Volumes/volumename/.Trashes/$UID
ゴードン

@Gordonパーフェクト、ありがとう!コマンドを実行するための1行のApplescriptを作成し、それはいつでもQuickSilverのキーストロークのカップルです。
マシューフレデリック

回答:


36

他のユーザーのゴミ箱にファイルがある可能性があります。.Trashes各ボリュームの上部のフォルダは、ユーザID番号(例えば、ユーザ502のゴミが入っていることにより、それぞれ異なるユーザのためのサブフォルダを有します.Trashes/502)。
次のようなコマンドを使用して、自分用かどうかを確認できます(VolumeNameドライブ名に置き換えてください):

ls -la /Volumes/VolumeName/.Trashes/
total 0
d-wx-wx-wt@  3 _unknown  _unknown   102 10 Feb 18:15 .
drwxrwxrwx@ 21 root      wheel      782 13 Feb 14:17 ..
drwx------@ 35 _unknown  _unknown  1190 13 Feb 14:18 502

ご覧のとおり、USBディスク.Trashesフォルダーには502、ユーザーID 502が所有するというサブフォルダーがあります(参照用に、現在のユーザーIDは501です)。このユーザーはシステム上に存在しないため、として表示され_unknown、ユーザーは内部を見ることができず、削除することもできません。そのフォルダ内を見るには、管理者として実行する必要があります(つまり、使用しますsudo)。

確実に実行したい場合は、次のようなコマンドを使用してフォルダ全体を削除することにより、全員のゴミ箱を削除でき.Trashesます。

sudo rm -R /Volumes/volumeName/.Trashes

警告:関連するものと同じようにsudo「スーパーユーザーとして実行する」、すなわちシステム管理者)とrm -R、慎重にこれを使用します。入力を間違えると、不快な結果になる可能性があります。


「他の誰かのゴミ箱にいる可能性がある」というのは、まさに私が遭遇した問題です。これはもっと宣伝されるべきです!
cdeszaq

コマンドに-fスイッチを追加すると、アクションが強制されます。「ボリューム名」を「*」に置き換えると、複数のUSBドライブを接続し、それらすべてのゴミ箱を同時に空にすることができます。1行1列に接続してからやり直す必要はありません。
ダニエルジェームズW

との両方を含むコマンドを実行するsudo rm/Volumes/*/something、システムドライブにさえ影響を与える可能性があり、タイプミスが悪い結果を招く可能性があるため、危険な場合があります。
ゲルロス

8

通常の動作:
USBドライブから何かを削除すると.Trashes、そのボリューム上のフォルダーに移動します。コンピューターに接続すると、削除されたアイテムはごみ箱に他のすべてのものとともに表示されます。

プラグを抜くと、そのドライブから削除したアイテムは、再度プラグインするまでゴミ箱に表示されなくなります。その後、ごみ箱を空にすることができます。そのドライブからそれらを本当に削除します。

それがあなたのために起こっていない場合、ここに私の提案があります:

  1. Finderサイドバーでドライブを選択します。
  2. 他を選択せず​​に、を押しcmd-iます(またはメニュー項目File→を使用Get Info)。
  3. Sharing and Permissionsそのウィンドウのセクションを使用してEveryone、アクセス許可を付与しRead and Writeます。

これが受け入れられるべきである
zsitro

7

それが最良の答えであるかどうかはわかりませんが、少なくともそれが有効な答えです。

コマンドラインを開き、USBボリューム(私の場合は/ Volumes / USB)に移動して、次のように入力します。

/bin/rm -rf ./Trashes/* works fine with me.

これにより、ユーザーは毎回特定のボリュームに移動する必要があります。あなたの返事に基づいて、私はBashスクリプトとAppleScriptソリューションを考え出しました。
ダニエルジェームズW

2

2ソリューション。1つはBashを使用し、もう1つはAppleScriptでラップされたBashを使用します。

解決策#1

  1. で新しいAppleScriptを作成します /Applications/Utilities/AppleScript Editor
  2. 次のコードを入力します。

    管理者権限でシェルスクリプト「rm -rf /Volumes/*/.Trashes/*」を実行します

  3. ファイルを便利な場所に保存し、USBゴミ箱をクリアする必要があるときに実行します
  4. これをダブルクリックして実行できます

注:これにより、内蔵ハードディスクを含むすべての接続ボリュームのゴミ箱が空になります。5台のUSBドライブとFirewireハードディスクを接続している場合、すべてのゴミ箱が空になります。


解決策2

  1. お気に入りのテキストエディターを起動します(私の場合はnanoです)
  2. 次のコードをテキストエディターに貼り付けて、ファイルを保存します

    #!/ bin / bash
    sudo rm -rf /Volumes/*/.Trashes/*

  3. ファイルを拡張子のある便利な場所に保存.shchmod +x {filename}.sh、ターミナルから実行可能にします

  4. でそれを実行します ./{filename}.sh

注:上記と同じ注意。これは、ターミナルから実行可能です。


2

このスクリプトAppleScriptを使用し、Applicationとして保存します。

on open these_volumes
    set t_id to user ID of (system info)
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
        end if
    end repeat
end open

アプリケーションでボリュームをドラッグ/ドロップします。

このスクリプトは、ボリューム上のごみ箱(ユーザーID)フォルダーからアイテムを削除します。他のユーザーがボリュームを使用する場合、このスクリプトはごみ箱フォルダーからアイテムを削除しません。そうしないと、スクリプトはそのために管理者パスワードを必要とします。


ごみ箱を空にした後にボリュームを排出する場合は、このスクリプトを使用します。

on open these_volumes
    set t_id to user ID of (system info)
    set volToEject to {}
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
            set end of volToEject to contents of i
        end if
    end repeat
    if volToEject is not {} then tell application "Finder" to eject volToEject
end open

AppleScriptを機能させるには、接続されているデバイスまたはドライブをAppleScriptアプリケーションにドラッグアンドドロップするだけです。アプリケーションアイコンをサイドドックにドラッグアンドドロップすることで、便宜上、通常のゴミ箱の隣のドックにエイリアスを作成できます。
Tony_kenya
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.