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


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нажатой кнопкой.


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, чтобы вы могли перетаскивать в него файлы.


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.

1
Вау, перетаскивание папки удалит всю папку, верно?
— duci9y

1
@ duci9y Верно! Я отредактирую ответ, чтобы исправить это. Отвечать без вычитки - не самая лучшая вещь.
— Thecafremo

2
Вы также можете удалить папку, если используете эту опцию -rf.
— Maverik

1
sudo rm -rf, за которым следуют космические чудеса, спасибо!
— PatrickT

1
Принятое решение выше хорошо, если вам приходится делать это часто, но у меня был только один файл, который мне нужен для обнуления (с орбиты), и это помогает.
— причал

4

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


1
Это выглядит прилично, но мне было интересно, есть ли что-нибудь в свободном доступе.
— Redandwhite

Это правда :-) Но, по крайней мере, это дешево.
— Maverik

4

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

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


3

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

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


2

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

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


Почему отрицательный голос? Кому не нравятся MacPorts или инструменты GNU?

Я был не из тех, кто голосовал против, но я не думаю, что это отвечает на вопрос Возможно, оригинал сформулирован плохо
— Redandwhite


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.