desfazer o rm do Linux? [duplicado]

31

Possível duplicado:
UNDO LINUX Trash Command

Oi,

Existe alguma maneira simples de desfazer um rmcomando?

A questão é puramente teórica; NUNCA excluí o registro de uma fila de benchmark que levava um almoço inteiro para executar.

Adam Matan
fonte
1
... ou pelo menos muito estreitamente relacionadas, mesmo que a própria questão é formulada para ser um pouco mais geral
Jonik

Respostas:

33

No ubuntu ou similar:

$ sudo apt-get install trash-cli
$ alias rm=trash

Em seguida, coloque esse alias no .bashrc ou no script de login apropriado para o seu shell de escolha.

O trash-clipacote é uma interface de linha de comando para a mesma lata de lixo usada pelo GNOME, KDE e outros. Portanto, qualquer coisa que você exclua por meio do trashcomando pode ser restaurada pelo GNOME / KDE e vice-versa.

Os outros comandos no trash-clipacote são trash-list, trash-emptye restore-trash.

Ryan C. Thompson
fonte
11
+1 para lixo-cli, -1 para aliasing rm.
1
O que há de errado com o aliasing rm? Gosto de ter um botão para desfazer minhas exclusões acidentais, mesmo na linha de comando. Além disso, trash-cliexplicitamente facilita isso aceitando (e ignorando) muitas rmopções do GNU . Além disso, o OP pediu uma maneira de desfazer. Esta solução não responde à pergunta corretamente sem o alias.
Ryan C. Thompson
15
@ Ryan: Porque você se acostuma a rm a significar algo diferente do que o comando rm realmente faz, e então comete um erro quando não está com alias. Acostume-se a usar o comando lixeira e isso não pode acontecer.
5
@ Roger: Ou ... você pode criar um pseudônimo rme depois hipnotizar-se para esquecer o que fez. Dessa forma, você ainda pode continuar usando rmcomo se fosse final ... mas se você escorregar e dizer "oh não !!" você não está completamente ferrado. (ou seja, não dependem de funcionalidade que é "recuperável")
MPEN
@RyanThompson: Esta é uma boa dica, mas como configurar isso para funcionar também com sudo rm?
takeshin 25/09/10
15

A resposta tradicional é:

Você recupera o arquivo do backup mais recente. Você tem um backup recente, não é?

porque em muitos sistemas de arquivos unix, esse simples não é possível ou é muito difícil.

Como outros observaram, esse não é o objetivo final e final de tudo, mas não cometer erros desse tipo ainda é a abordagem preferida.

dmckee
fonte
5
Realmente pretendo colocar todos os meus scripts em um repositório bzr comprometido a cada hora.
30511 Adam Matan
3
A resposta moderna é: Recupere o arquivo de um instantâneo recente do sistema de arquivos. :-)
knweiss
Essa é uma pergunta interessante ... Normalmente não faço backups de ~ / Downloads ... e limpei meu conteúdo passando rm -fr *(1)*... todos os arquivos foram removidos. Portanto, ter backups nem sempre é a solução. O lixo-cli soa frio.
M3nda
Não, ter backups é SEMPRE a solução. Só porque você optou por não fazer backup de algo, não torna o backup e não a solução, isso o torna tolo por não fazer backup de algo.
djsmiley2k - vaca
4

Para evitar erros futuros hipotéticos, convém alias rm para rm -i ...

Rich Bradshaw
fonte
6
Geralmente, acho que isso nunca evitaria erros (o 'y' é digitado automaticamente), mas consome muito tempo e incentiva o uso de rm -rf Nome-cujo-nome-não-deve-ser mencionado.
30511 Adam Matan
Isso lhe dá uma chance extra antes de estragar as coisas. Geralmente, apenas lscom os mesmos parâmetros antes, para que eu possa ver o que está acontecendo.
22330 Rich Bradshaw
Normalmente, apago os arquivos de propósito, só percebi que precisava desses arquivos mais tarde. Então interativo não ajudaria
andrewtweber