Nós temos um desfazer no Linux?

42

Eu renomei alguns arquivos em um script em lote. Existe uma maneira de desfazer as alterações sem precisar renomeá-las?

O Linux fornece alguma forma nativa de undo ing?

    
por Lazer 22.08.2010 / 10:09

8 respostas

46

O Linux (como outros unices) nativamente fornece um recurso de desfazer. A filosofia é que, se tiver desaparecido, desaparecerá. Se fosse importante, deveria ter sido feito backup.

Existe um sistema de arquivos com fusíveis que automaticamente mantém cópias de versões antigas: copyfs , disponível em todas as boas distribuições. Claro, isso pode usar muitos recursos.

A melhor maneira de proteger contra tais acidentes é usar um sistema de controle de versão (cvs, bazar, darcs, git, mercurial, subversion, ...). Demora um pouco para aprender, mas vale a pena a médio e longo prazo.

    
por 22.08.2010 / 12:02
13

Infelizmente, não.

    
por 22.08.2010 / 10:17
9

Não, não há desfazer mágico em nenhum Unix. O Unix assume que você sabe o que está fazendo. Para o suporte a Desfazer, use um VCS (seu editor de texto provavelmente já o embutiu).

A maioria dos sistemas de arquivos não tem a capacidade de fazer isso de maneira transparente.

A máquina do tempo e a restauração do sistema no mac e windows, respectivamente, são apenas sistemas de controle de backup / mudança.

    
por 22.08.2010 / 10:17
7

Não há desfazer na linha de comando. Você pode, no entanto, executar comandos como rm -i e mv -i . Isto irá solicitar-lhe um "tem a certeza?" pergunta antes de executar o comando.

Também é possível adicionar um alias para ele a um script de inicialização (por exemplo, ~/.bashrc ou /etc/bash.bashrc ):

alias remove='rm -i'
alias move='mv -i'

Editar: pelas sugestões abaixo, removi meu conselho para alias os comandos padrão. Em vez disso, introduz novos comandos agora).

    
por 22.08.2010 / 10:47
4

A razão pela qual os sistemas Linux / Unix não têm uma undelete decorre da maneira como a maioria dos sistemas de arquivos armazena suas informações. A meta-informação de arquivo é toda armazenada na frente do disco com referências a inodes no resto do disco. Normalmente, a maioria dos sistemas de arquivos aloca 10 blocos a um arquivo nessa meta-área. Os primeiros 7 referem-se aos primeiros 7 inodes. Os oitavo e nono vão para listas de inodes (blocos duplamente ligados) e o décimo para uma lista de listas de listas (blocos interligados). Isso varia de sistema de arquivos para sistema de arquivos (ext4, jfs, xfs, etc.), mas essas listas de blocos geralmente podem endereçar tamanhos de arquivo de 2 GB a vários TB.

Mas como todas essas informações são armazenadas na frente do disco, quando um arquivo é apagado, não há como fazer referência a inodes no disco a quais meta-dados eles usam para pertencer. Em contraste, FAT32 e NTFS na verdade armazenam algumas informações de cabeçalho com os próprios arquivos, facilitando a identificação de qual arquivo um conjunto de blocos usa para pertencer (desde que esse espaço ainda não tenha sido recuperado por arquivos mais novos). No trabalho do Linux, quando você exclui algo, quase sempre é a primeira coisa a ser imediatamente substituída por novos dados para obter eficiência.

    
por 18.08.2011 / 17:42
2

Se você realmente quiser um recurso de desfazer, use o controle de origem. O Subversion funciona muito bem em uma única máquina de usuário. Eu uso para controlar todos os meus arquivos pessoais no meu sistema em casa. Parece um exagero, até um desastre, um script desonesto ou um erro de digitação na linha de comando.

    
por 22.08.2010 / 11:01
2

Uma coisa que eu gosto de adicionar ao meu .bashrc é uma função de copiar e remover. Algo como:

cprm(){
    cp -p $1 ~/deleted/$1
    rm $1
}

Mas você tem que adquirir o hábito de digitar cprm não rm.

Obviamente, você precisará manter-se no topo da área excluída se tiver espaço em disco limitado.

    
por 23.08.2010 / 14:18
1

O GitFS é um sistema de arquivos baseado em fusível, que calcula automaticamente diff s entre versões e permite a restauração / navegação entre elas.

Página da Web: link

Documentos: link

    
por 04.02.2016 / 14:25