Как я могу пропустить корзину при удалении файла?

66

Я часто подключаю различные внешние жесткие диски USB и флэш-накопители к своему компьютеру, и я хотел бы облегчить удаление файлов и восстановление с них дискового пространства.

Если я просто удаляю файл, он будет храниться в скрытой папке на внешнем диске до тех пор, пока я не очистю корзину. Это также вынуждает меня одновременно очищать локальный мусор, пока внешний диск все еще подключен для восстановления дискового пространства, что нежелательно.

На данный момент единственное другое «решение», которое я нашел, - это переместить файл на внутренний жесткий диск, а затем удалить его. Это не оптимально, потому что я трачу время на перемещение файлов с одного диска на другой (я регулярно работаю с 20 ГБ + ВМ).

Как я могу навсегда удалить файл с внешнего диска, минуя корзину?

Красный и белый
источник
1
Очень сложно постоянно что-то стереть с флэш-накопителя USB. Дополнительное чтение: security.stackexchange.com/questions/5662/…
Андрис
3
@ Андрис Спасибо, интересная ссылка. Я думаю, что я сформулировал свой вопрос плохо. Я не заинтересован в безопасном удалении. Я просто заинтересован в удалении файла и восстановлении места.
Redandwhite
Таким образом, вы не можете очистить корзину локально, когда файл является внешним, но вы можете, когда он хранится внутри? Зачем вообще хранить мусор в любом месте, когда вы в шаге от удаления? Я не получил оправдания. Почему бы не отредактировать это и просто сказать, что вы хотите сделать X?
bmike
6
@bmike, потому что я не против иметь мусор на месте. Я не против иметь мусор на более ограниченной флешке. По сути, удаление файла не освобождает место на диске. Я знаю, что это то же самое для локальных дисков, но это более приемлемо для меня. Это касается конкретного варианта использования.
Redandwhite
Невероятно, что Apple не видит, в чем проблема. Как обычный нормальный пользователь должен понимать, что происходит? С их точки зрения их USB-накопитель пуст, но бесполезен!
cja

Ответы:

17

⌘ Command⌥ Option⌫ Deleteнавсегда удалит файлы с диалоговым окном подтверждения, предупреждающим, что это действие нельзя отменить. ⌘Command⌫ Deleteпросто перемещает файлы в корзину без подтверждения.

Совет: всякий раз, когда вы хотите, чтобы приложение Mac выполняло то же действие, но немного по-другому, попробуйте сделать это с ⌥ Optionнажатой кнопкой.

hamstergene
источник
1
Спасибо! Это теперь принятый ответ. В интересах других было бы полезно отметить в своем ответе, что Alt называется Option на американской раскладке клавиатуры.
Redandwhite
54

Вы можете создать службу или приложение Automator, чтобы упростить выполнение rmкомандо оболочки, которое будет безвозвратно удалять файлы или папки и пропускать корзину.

Например, начните с создания нового Сервиса в Automator.app .

  • Выберите в files or foldersкачестве входных данных, вы, вероятно, также хотите ограничить доступность этой службы для приложения Finder.

Автоматизированный сервис ввода

  • Необязательно, но настоятельно рекомендуется сначала добавить Ask for Confirmationшаг в рабочий процесс.

Шаг подтверждения

  • Наконец, добавьте Run Shell Scriptшаг в рабочий процесс. Обязательно передайте ввод as arguments. Затем вы можете вставить следующий скрипт:

    for f in "$@"
    do
        rm -rf "$f"
    done
    

Входной сценарий оболочки

Как уже упоминалось @Thecafremo, вы также можете добавить -Pпараметр rmдля дополнительной безопасности при удалении. Для большей аккуратности вы можете добавить звуковую обратную связь, добавив следующую команду в конце сценария оболочки:

afplay "/System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/finder/empty trash.aif"

Сохраните ваш сервис, и он должен быть готов к использованию в Finder из меню «Сервисы» в строке меню. Служба также появится в нижней части меню, которое вы получите, щелкнув правой кнопкой мыши по файлам в Finder, хотя для его отображения вам, возможно, придется Finder > Servicesсначала запустить его из меню. Вы также можете настроить сочетание клавиш для своего сервиса на панели настроек «Клавиатура» в Системных настройках.

Сервисное меню

Сервис в действии

Вместо создания службы вы также можете создать приложение в Automator, которое вы можете прикрепить в Dock, чтобы вы могли перетаскивать в него файлы.

Gerry
источник
1
Это, безусловно, самое элегантное решение. И это бесплатно :-)
Maverik
Это действительно мило. Спасибо за отличное решение :)
Redandwhite
Это не работает для меня в Mavericks ... Он просто ничего не делает, когда я использую сервис.
Бруно Стоунк
1
Я хотел бы добавить, что этот сервис можно использовать даже для удаления файлов, которые уже находятся в корзине, что в противном случае очень сложно. (Круто!)
Один защитник
1
Потрясающие! Пара вещей. Нажатие на значок внутри шага «Запросить подтверждение» изменит его на желтый восклицательный знак - удобно, чтобы предупредить, что то, что вы собираетесь сделать, опасно. При сохранении введенное имя должно быть «Удалить навсегда», поскольку это будет отображаться в меню «Сервисы». К сожалению, это не поддерживается, sudoкогда требуется пароль. Я пытался использовать, osascript -e ... with administrator privelegesно выход из оригинала "с \", похоже, не работал.
ADTC
19

И опция может быть команда терминала rm, с -Pопцией, если вы хотите добавить дополнительную безопасность:

[Опция -P будет] Перезаписывать обычные файлы перед их удалением. Файлы перезаписываются три раза, сначала с помощью байтового шаблона 0xff, затем 0x00, а затем снова 0xff, прежде чем они будут удалены.

Для этого просто:

  1. Откройте Terminal.app (находится в / Applications / Utilities).
  2. Введите rm -P и перетащите файл в окно терминала. Затем нажмите Enter.
Thecafremo
источник
1
Вау, перетаскивание папки удалит всю папку, верно?
duci9y
1
@ duci9y Верно! Я отредактирую ответ, чтобы исправить это. Отвечать без вычитки - не самая лучшая вещь.
Thecafremo
2
Вы также можете удалить папку, если используете эту опцию -rf.
Maverik
1
sudo rm -rf, за которым следуют космические чудеса, спасибо!
PatrickT
1
Принятое решение выше хорошо, если вам приходится делать это часто, но у меня был только один файл, который мне нужен для обнуления (с орбиты), и это помогает.
причал
4

Рассматривали ли вы использовать корзину без из Mac App Store?

Maverik
источник
1
Это выглядит прилично, но мне было интересно, есть ли что-нибудь в свободном доступе.
Redandwhite
Это правда :-) Но, по крайней мере, это дешево.
Maverik
4

Как о чем - то вроде Trash X . В описании сказано:

Вы можете использовать его для мгновенного удаления или уничтожения файлов и папок, не отправляя их в корзину. Вы можете использовать его для очистки или уничтожения мусора только на выбранных дисках. И, конечно, вы можете использовать его так же, как мусорную корзину, которую вы всегда имели на рабочем столе.

binarybob
источник
3

Следующий трюк работает с OS X El Capitan. Я получил подсказку отсюда .

Выберите ваши файлы в Finder. Зайдите в Fileменю, и когда вы нажмете alt/optionклавишу, вы увидите, что опция «Переместить в корзину» сменится на «Немедленно удалить ...».

Тайлер Кольер
источник
2

Исходную информацию можно найти в статье « Безопасное удаление данных из магнитной и твердотельной памяти».

Внедрение знаний, полученных из этой статьи, - это кусочек GNU . Этот инструмент может быть установлен как часть coreutilsот MacPorts .


источник
Почему отрицательный голос? Кому не нравятся MacPorts или инструменты GNU?
Я был не из тех, кто голосовал против, но я не думаю, что это отвечает на вопрос Возможно, оригинал сформулирован плохо
Redandwhite
2

Существует бесплатный инструмент Skip The Trash , который позволяет не только регулярно удалять, но и аутентифицировать удаление как администратор. Он добавляет контекстные меню в Finder:

http://www.blazingtools.com/delete_without_trash_mac.html

Джон Халл
источник
0

Начиная с El Capitan 10.11.6 это теперь возможно без использования Terminal.app: выберите файлы, от которых вы хотите избавиться, щелкните правой кнопкой мыши и выберите «Немедленно удалить…».

DataArchitect
источник