Como remapear as teclas excluir e shift + delete para excluir e excluir permanentemente um arquivo no Mac OS X Lion?

11

Gostaria de excluir e excluir permanentemente um arquivo no localizador usando del e shift + delete (estilo windows).

Existe alguma maneira de remapear isso no OS X lion?

Riyaz Mohammed Ibrahim
fonte
2
Por quê? O que há de errado com a exclusão de comando?
Abhi Beckert 24/03
1
Veja esta pergunta SU. Você também pode sempre usar o terminal e rm.
Linuxios 13/08/13
@Linuxios Very good find :)
Simon
Certo. O SU geralmente tem respostas melhores para essas perguntas dos usuários avançados do que os sites orientados para o "consumidor" (Ask Different, Ask Ubuntu, etc.).
Linuxios
1
SU é para qualquer usuário mais avançado que o usuário final. Pergunte sobre o assunto e entre diferentes consumidores e usuários avançados.
Linuxios

Respostas:

7

Se você deseja excluir os arquivos imediatamente, copie os arquivos, abra o Terminal ou o iTerm, digite rm -r ‌e pressione ⌘V.

Se você deseja excluir os arquivos com segurança para que eles não possam ser recuperados com um aplicativo como o DiskWarrior ou o DataRescue, use-o srm -srf. srmusa o algoritmo Gutmann de 35 passagens por padrão, mas -sapenas sobrescreve arquivos com uma única passagem de dados aleatórios.

Você também pode criar um serviço como este:

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 "$@"

Não usei uma ação Solicitar confirmação, porque ela não pode ser usada para exibir os caminhos especificados como argumentos, e as caixas de diálogo mostradas por ela não obtêm o foco do teclado.

O serviço não pode ser usado para excluir um arquivo se a exclusão exigir privilégios de superusuário.

Você pode atribuir ao serviço um atalho de teclado em Preferências do sistema> Teclado> Atalhos de teclado> Serviços. Os gravadores de atalho não permitem digitar ⇧⌦ como atalho de teclado, mas você pode primeiro fornecer um atalho temporário ao serviço, fechar a janela Preferências do Sistema, executar algo como f=~/Library/Preferences/pbs.plist; plutil -convert xml1 $f; open -e $fe alterar a tecla equivalente a $:

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

$&#x007F;é ⇧⌦ (onde ⌦ é exclusão direta do Mac / exclusão do Windows). ⇧⌫ seria $&#x0008;(onde ⌫ é exclusão do Mac / backspace do Windows). O formato usado para as seqüências de atalho é descrito em http://lri.me/keybindings.html .


Quanto a fazer ⌦ (exclusão direta do Mac / exclusão do Windows) mover arquivos para a lixeira, você pode modificar a lista de propriedades do Finder:

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

No entanto, isso também faz com que pressionar ⌦ mova um arquivo para a lixeira quando você estiver renomeando um arquivo.

Lri
fonte
Se apenas a sua resposta só consistiria em que a última frase ;-)
Asmus
depois de ler a última linha ... esta abordagem é quase inútil a menos que tenhamos uma solução alternativa para a utilização de exclusão em renomear o arquivo
Riyaz Mohammed Ibrahim
3

Se um processo de teclado em duas etapas for aceitável, você sempre poderá:

+ para mover o arquivo para a Lixeira

então

+ + para esvaziar o Lixo (com pop-up de confirmação) ou

+ + + para esvaziar o Lixo (sem pop-up de confirmação).

Obviamente, isso também irá se livrar de todos os outros arquivos que já estão no lixo.

Como alternativa, talvez algo como o Lixo X ajudasse. A descrição diz:

Você pode usá-lo para excluir ou destruir instantaneamente arquivos e pastas sem enviá-los para a lixeira. Você pode usá-lo para esvaziar ou destruir o lixo apenas nos discos selecionados. E, é claro, você pode usá-lo como a lixeira que você sempre teve na área de trabalho.

binarybob
fonte
+ Como eu acabei de descobrir isso?
Drazen Bjelovuk
1
+ + Para excluir o arquivo imediatamente
Matt Sephton
2

O que você pode fazer é enviar o (s) arquivo (s) para a lixeira e clicar em Finder-> Secure Empty Trash.

Você também pode criar um atalho de teclado para tornar esse processo um pouco mais rápido, conforme descrito neste artigo .

Não é exatamente o que você deseja, mas parece ser o mais próximo que você pode chegar sem precisar criar algo com o Automator ou o Keyboard Maestro .

David
fonte
Bom artigo. O que é o Keyboard Maestro? (talvez um link para ele em sua resposta, se possível)
Simon
Excelente, muito apreciada :)
Simon
Eu adicionei um link . É um aplicativo que permite criar vários tipos de macros ou atalhos de teclado para fazer as coisas mais rapidamente. Você pode criar atalhos para executar algumas etapas muito complicadas. Provavelmente é um exagero comprar apenas essa tarefa.
David
0

Eu fiz um aplicativo simples no cacau, que age como o ícone da lixeira, mas com um comportamento diferente, por exemplo. quando um arquivo ou pasta é solto em seu ícone no dock, ele o exclui permanentemente.

Também escrevi um post sobre ele - Mac OS X: shift + delete

Aqui está o link para o aplicativo - DeleteMe

A idéia básica é - use: rm -rf , exatamente o mesmo que é sugerido na resposta mais votada, mas implementada de uma maneira diferente ;-)

Atualizar

Agora existe uma maneira melhor de obter a funcionalidade 'exclusão permanente', conforme especificado por Matt Sephton no comentário a esta resposta - Basta usar o comando + alt (opção) + backspace . Obrigado a ele pela atualização.

Devarshi
fonte
2
É mais fácil simplesmente pressione Command + Alt + Delete / Backspace i.imgur.com/9pHcsHT.png
Matt Sephton