Як зробити перезапис видалення та переключення + клавіші видалення, щоб видалити та остаточно видалити файл у Mac OS X Lion?


11

Я хотів би видалити і назавжди видалити файл у пошуку, використовуючи del і shift + delete (стиль Windows).

Чи є якийсь спосіб перезавантажити це у лева X X?


2
Чому? Що не так із командою-delete?
Абхі Беккерт

1
Дивіться це питання СУ. Ви також завжди можете використовувати термінал і rm.
Linuxios

@Linuxios Дуже гарна знахідка :)
Саймон

Звичайно. Зазвичай SU має кращі відповіді на ці запитання користувачів, ніж орієнтовані на споживача (Ask Different, Ask Ubuntu тощо).
Linuxios

1
SU призначений для чогось більшого споживача енергії, ніж кінцевого споживача. Запитуйте різні набори між споживачами та споживачами живлення.
Linuxios

Відповіді:


7

Якщо ви хочете видалити файли негайно, ви можете скопіювати файли, відкрити Terminal або 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 delete). ⇧⌫ буде $&#x0008;(де ⌫ - Mac delete / Windows backspace). Формат, використаний для рядків швидкого доступу, описаний у http://lri.me/keybindings.html .


Що стосується того, щоб ⌦ (Mac вперед видалити / Windows delete) переміщувати файли у кошик, ви можете змінити список властивостей Finder:

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

Однак це також робить натисканням ⌦ переміщення файлу в кошик, коли ви перейменовуєте файл.


Якби ваша відповідь складалася лише з того останнього речення ;-)
Асмус

після прочитання останнього рядка ... цей підхід майже марний, якщо у нас немає
способу

3

Якщо прийняття двоетапної клавіатури прийнятне, ви завжди можете зробити:

+ щоб перемістити файл у кошик

потім

+ + для видалення кошика (із спливаючим вікном підтвердження) або

+ + + для очищення кошика (без спливаючого вікна).

Очевидно, це також позбудеться від усіх інших файлів, які вже є у кошику.

Або, можливо, щось подібне допоможе Trash X. В описі написано:

Ви можете використовувати їх для миттєвого видалення або подрібнення файлів і папок, не надсилаючи їх у кошик. Ви можете використовувати його для очищення або подрібнення сміття лише на вибраних дисках. І звичайно, ви можете використовувати його так само, як і смітник, який ви завжди мали на робочому столі.


+ Як я тільки що це відкрив?
Дражен Беловук

1
+ + негайно видалити файл
Метт Сефтон

2

Що можна зробити, - надіслати файли в кошик, а потім натиснути Finder-> Secure Empty Trash.

Ви також можете зробити комбінацію клавіш, щоб зробити процес трохи швидшим, як описано в цій статті .

Це не зовсім те, що ви хочете, але, здається, це найближче, що ви можете отримати, не намагаючись створити щось за допомогою Автоматизатора або Клавіатури Maestro .


Приємна стаття. Що таке клавіатура Maestro? (можливо, гіперпосилання на нього у вашій відповіді, якщо можливо)
Саймон

Відмінно, дуже вдячний :)
Саймон

Я додав посилання . Це додаток, який дозволяє створювати різні типи макросів або комбінацій клавіш, щоб робити все швидше. Ви можете створити ярлики для виконання дуже складних багатоступеневих речей. Напевно, надмірне придбання лише для цього одного завдання.
Девід

0

Я зробив просте додаток з какао, яке діє як піктограма сміття, але з різною поведінкою, тобто. коли файл або папка скидається на його піктограму в доці, вона видаляє їх назавжди.

Я також писав про це в блозі - Mac OS X: shift + delete

Ось посилання на додаток - DeleteMe

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

Оновлення

Тепер є кращий спосіб домогтися функціональності "постійного видалення", визначеного Меттом Сефтоном у коментарі до цієї відповіді. Просто використовуйте команду + alt (опція) + зворотна область . Дякуємо йому за оновлення.


2
Простіше просто натиснути Cmd + Alt + Delete / Backspace i.imgur.com/9pHcsHT.png
Метт Сефтон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.