Видалення сміття USB-накопичувача


41

У мене на Mac підключений USB-накопичувач. Те, що я знайшов, .Trashesне спорожнялося, коли виводили сміття (клацніть правою кнопкою миші на піктограму Кошик та запустіть «Порожнє сміття») для USB-накопичувача

Що може бути не так? Чи є якийсь інший спосіб випорожнити USB-накопичувач?


9
Цікаво, що спорожнення сміття завжди робить це успішно для моїх USB-накопичувачів. Моя єдина скарга на це полягає в тому, що часто мені хочеться лише спорожнити сміття на своєму накопичувачі USB, а не робити це для кожного накопичувача в системі.
Меттью Фредерік

4
@Matthew tryrm -R /Volumes/volumename/.Trashes/$UID
Гордон Девіссон

@Gordon Чудово, дякую! Створив однорядковий Applescript для запуску команди, і це пара клавіш QuickSilver будь-коли.
Меттью Фредерік

Відповіді:


36

Можливо, що в кошику іншого користувача є файли . У .Trashesпапці вгорі кожного тома є підпапки для кожного іншого користувача за ідентифікаційним номером користувача (наприклад, сміття користувача 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

Як бачите, у моїй .Trashesпапці диска USB є підпапка під назвою 502, що належить ідентифікатору користувача 502 (для довідки, мій поточний ідентифікатор користувача - 501). Оскільки цього користувача не існує в моїй системі, я бачу це як _unknownі мій користувач не може заглянути його всередину, а також видалити. Щоб заглянути всередину цієї папки, нам потрібно зробити це як адміністратор (тобто використовувати sudo).

Якщо ви впевнені , що ви хочете, ви можете видалити кожен сміття «сек, видаливши всю .Trashesпапку з допомогою наступної команди:

sudo rm -R /Volumes/volumeName/.Trashes

Попередження: як і будь-що, що стосується sudo( "робити як супер користувач" , тобто системного адміністратора), і rm -Rвикористовуйте це обережно. Якщо ви введете неправильно, це може спричинити ... неприємні наслідки.


"Можливо, в чужому смітнику" - це саме те, з чим я стикався. Це слід краще рекламувати!
cdeszaq

Додавання перемикача -f до команди примусить дію. Заміна "імені гучності" на "*" дозволить вам підключити декілька накопичувачів USB та очистити всі кошики на всіх одночасно. Не потрібно підключати 1-на-1, а потім повторно робити.
Danijel-James W

Це може бути небезпечно запускати команду, яка включає в себе і те, sudo rmі /Volumes/*/somethingтому, що це може вплинути навіть на ваш системний диск, а помилка друку може мати погані наслідки.
gerlos

8

Звичайна поведінка:
Коли ви видаляєте щось з USB-накопичувача, воно переміщується в .Trashesпапку з цим об'ємом. Підключившись до комп'ютера, видалені елементи з’являться у вашому смітнику разом із усім іншим.

Коли ви від'єднаєте його від мережі, елементи, які ви видалили з цього диска, більше не відображатимуться у вашому смітнику, доки ви не підключите його знову. Потім ви можете спорожнити сміття. Він дійсно видалить їх з цього диска.

Якщо у вас цього не відбувається, ось моя пропозиція:

  1. Виберіть диск на бічній панелі Finder.
  2. Не вибираючи нічого іншого, натисніть cmd-i(або скористайтеся пунктом меню FileGet Info).
  3. Використовуйте Sharing and Permissionsрозділ цього вікна, щоб надати Everyoneдозволи Read and Write.

Це слід прийняти
zsitro

7

Я не знаю, чим це найкраща відповідь, але, принаймні, це працює відповідь.

Відкрийте командний рядок, cd до гучності USB (/ Томи / USB для мого випадку) та введіть:

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

Це вимагатиме від користувача кожного разу переходити до конкретного обсягу. Спираючись на вашу відповідь, я придумав сценарій Bash і AppleScript.
Danijel-James W

2

2 Рішення. 1, використовуючи Bash, інший за допомогою Bash, загорнутого в AppleScript.

Рішення №1

  1. Створіть новий AppleScript за допомогою /Applications/Utilities/AppleScript Editor
  2. Введіть наступний код:

    зробіть скрипт оболонки "rm -rf /Volumes/*/.Trashes/*" з правами адміністратора

  3. Збережіть файл десь зручно і запускайте його, коли потрібно очистити USB-кошик
  4. Це можна виконати подвійним клацанням по ньому

ПРИМІТКА. Це дозволить спорожнити кошик для всіх підключених томів, включаючи внутрішній жорсткий диск. Якщо ви підключили 5 USB-накопичувачів і жорсткий диск Firewire, він видалить сміття для всіх них.


Рішення №2

  1. Запустіть улюблений текстовий редактор (мій нано)
  2. Вставте наступний код у свій текстовий редактор і збережіть файл

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

  3. Збережіть файл десь зручно з розширенням, .shа потім зробіть його виконуваним за chmod +x {filename}.shдопомогою терміналу

  4. Виконати це з ./{filename}.sh

ПРИМІТКА. Та сама примітка, що і вище. Це виконується з терміналу.


2

Я використовую цей скрипт AppleScript, збережу його як додаток:

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 і відпустіть його. Для зручності можна створити псевдонім на доці поруч із звичайним смітником, перетягнувши та опустивши піктограму програми в бічну док-станцію.
Tony_kenya
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.