O RM é corrompido quando interrompido?

2

Então eu posso ter acidentalmente rm -r'd ~. Não se preocupe, eu tenho backups! Eu fiz um diff de listagem de arquivos rápido para copiar arquivos que foram removidos, tudo é bom. Mas ...

O GNU rm corrompe arquivos se eu os interrompo? Certamente foi apenas desvinculando gigabytes de meus dados inestimáveis por segundo, em vez de remover o arquivo do próprio disco?

    
por Jookia 26.01.2013 / 02:14

2 respostas

3

Não. rm apenas chama unlink() para remover o nome. Esse syscall é atômico, o que significa que ele consegue remover o nome ou não. Não pode ser interrompido. Se você interromper o rm enquanto estiver unlink() em vários arquivos, alguns arquivos serão removidos com sucesso e outros não. O serviço de limpeza, como liberar os blocos que o arquivo estava usando, se todos os links foram removidos, é uma operação separada e pode ser feito posteriormente, e se isso for interrompido (por uma queda de energia ou falha do sistema, não interrompendo rm ), o sistema de arquivos pode Exigem um fsck para finalizá-lo, mas a maioria dos sistemas de arquivos atualmente é registrada em diário para que eles não precisem disso. De qualquer forma, o arquivo é removido ou não, não há entre eles.

    
por 26.01.2013 / 04:40
2

De Wikipedia

To be more precise, rm removes references to objects from the filesystem, where those objects might have had multiple references (for example, a file with two different names), and the objects themselves are discarded only when all references have been removed and no programs still have open handles to the objects.

Então, a sua analogia de desligar é muito boa. Se você tiver vários hard links para um arquivo, os dados não serão marcados como ask descartável até que todos os links tenham desaparecido (links simbólicos não se qualificam, apenas links físicos).

Se você tiver backups, pode ser uma boa ideia fazer alguns hashes md5 ou sha1 nos backups e em seu diretório inicial e diferenciá-los para detectar quaisquer alterações, mas, desde que você tenha restaurado os arquivos ausentes, os arquivos que preso por aí não deveria sofrer qualquer tipo de corrupção.

Como sempre, YMMV.

    
por 26.01.2013 / 02:36

Tags