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.