Как переназначить удаление и сдвиг + удалить ключи, чтобы удалить и окончательно удалить файл в Mac OS X Lion?

11

Я хотел бы удалить и навсегда удалить файл в Finder, используя Del и Shift + Delete (стиль Windows).

Есть ли способ переназначить это в OS X Lion?

Рияз Мохаммед Ибрагим
источник
2
Зачем? Что не так с командой-delete?
Абхи Бекерт
1
Смотрите этот вопрос SU. Вы также можете всегда использовать терминал и rm.
Linuxios
@Linuxios Очень хорошая находка :)
Саймон
Конечно. SU обычно дает лучшие ответы на эти вопросы для опытных пользователей, чем сайты, ориентированные на потребителя (Ask Different, Ask Ubuntu и т. Д.).
Linuxios
1
SU предназначен для более опытного пользователя, чем конечный пользователь. Задайте различные зависания между потребителем и опытным пользователем.
Linuxios

Ответы:

7

Если вы хотите немедленно удалить файлы, вы можете скопировать файлы, открыть терминал или iTerm, ввести rm -r ‌и нажать ⌘V.

Если вы хотите надежно удалить файлы, чтобы их нельзя было восстановить с помощью таких приложений, как DiskWarrior или DataRescue, вы можете использовать их srm -srf. srmпо умолчанию использует 35-проходный алгоритм Гутмана, но -sперезаписывает файлы только одним проходом случайных данных.

Вы также можете создать такой сервис:

osascript -e 'on run argv
    set text item delimiters to linefeed
    tell application "Finder"
        display dialog "Delete the following files immediately?" & linefeed & linefeed & text items of argv
    end tell
end run' "$@"
[[ $? != 0 ]] && exit 0
rm -rf "$@"

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

Службу нельзя использовать для удаления файла, если для его удаления потребуются привилегии суперпользователя.

Службе можно присвоить сочетание клавиш из «Системных настроек»> «Клавиатура»> «Сочетания клавиш»> «Службы». Сочетания клавиш не позволяют вводить ⇧⌦ в качестве сочетания клавиш, но вы можете сначала дать службе временный ярлык, затем закрыть окно «Системные настройки», затем запустить что-то вроде f=~/Library/Preferences/pbs.plist; plutil -convert xml1 $f; open -e $f, а затем изменить ключ на эквивалентный $:

<key>(null) - Delete Immediately - runWorkflowAsService</key>
<dict>
    <key>key_equivalent</key>
    <string>$&#xU007F;</string>
</dict>

$&#x007F;это ⇧⌦ (где ⌦ - удаление Mac вперед / удаление Windows). Be будет $&#x0008;(где ⌫ - удаление Mac / возврат Windows). Формат, используемый для строк ярлыков, описан в http://lri.me/keybindings.html .


Что касается ⌦ (удаление Mac вперед / удаление Windows) перемещать файлы в корзину, вы можете изменить список свойств Finder:

defaults write com.apple.finder NSUserKeyEquivalents -dict 'Move to Trash' '\U007F'
killall Finder

Однако это также приводит к нажатию pressing перемещать файл в корзину, когда вы переименовываете файл.

LRI
источник
Если бы только ваш ответ состоял только из этого последнего предложения ;-)
Asmus
после прочтения последней строки ... этот подход почти бесполезен, если у нас нет обходного пути для использования удаления при переименовании файла
Рияз Мохаммед Ибрагим
3

Если приемлем двухэтапный процесс клавиатуры, вы всегда можете сделать:

+ переместить файл в корзину

затем

+ + очистить корзину (с подтверждением) или

+ + +, чтобы очистить корзину (без подтверждения).

Очевидно, что это также избавит от всех других файлов, уже находящихся в корзине.

Кроме того, может быть, что-то вроде Trash X поможет. В описании сказано:

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

binarybob
источник
+ Как я только что обнаружил это?
Дражен Бжеловук,
1
+ + немедленно удалить файл
Мэтт Сефтон,
2

Что вы можете сделать, это отправить файлы в корзину, а затем нажмите Finder-> Secure Empty Trash.

Вы также можете сделать сочетание клавиш, чтобы сделать этот процесс немного быстрее, как описано в этой статье .

Это не совсем то, что вам нужно, но кажется, что вы ближе всего можете получить, не задумываясь о создании чего-либо с Automator или Keyboard Maestro .

Дэвид
источник
Хорошая статья. Что такое клавиатура Maestro? (возможно, гиперссылка на него в вашем ответе, если это возможно)
Саймон
Отлично, высоко ценится :)
Саймон
Я добавил ссылку . Это приложение, которое позволяет вам создавать различные типы макросов или сочетаний клавиш, чтобы делать вещи быстрее. Вы можете создавать ярлыки для выполнения очень сложных многоступенчатых действий. Вероятно, излишне покупать только для этой задачи.
Дэвид
0

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

Я также написал сообщение в блоге об этом - Mac OS X: shift + delete

Вот ссылка на приложение - DeleteMe

Основная идея такова: используйте: rm -rf , в точности то же самое, что предлагается в ответе с наибольшим количеством голосов, но реализовано по-другому ;-)

Обновить

Теперь есть лучший способ реализовать функцию «постоянного удаления», указанную Мэттом Сефтоном в комментарии к этому ответу - просто используйте команду + alt (опция) + backspace . Спасибо ему за обновление.

Devarshi
источник
2
Проще всего нажать Cmd + Alt + Delete / Backspace i.imgur.com/9pHcsHT.png
Мэтт Сефтон