O que acontece quando eu mato um comando com ctrl + c?

2

Especificamente, eu corri um rm -R /my/dir por engano em uma máquina Ubuntu 10.04.

Quando percebi o horror, em poucos segundos, eu rapidamente o matei com o comando Ctrl + C . Agora parece que não perdi nenhum dado. Isso é possível? O que realmente aconteceu em segundo plano?

    
por Damien Varron 18.04.2012 / 15:02

4 respostas

2
Ctrl + C envia o sinal SIGINT para o processo.

Sua ação padrão é "Terminação anormal do processo" então, basicamente, pressionando Ctrl + C Você está interrompendo o processo em execução

Se você fosse rápido o suficiente (antes do processo escanear sua estrutura de diretórios) rm não deveria deletar nada (ou talvez não se não houvesse muitos arquivos nele).

    
por 18.04.2012 / 15:08
1

Se /my/dir contiver muitos diretórios e arquivos, a varredura inicial pode demorar um pouco e é bem possível que você tenha parado seu comando enquanto ainda estava lendo a estrutura de diretórios. Além disso, o Ctrl + C não oferece recursos de desfazer.

    
por 18.04.2012 / 15:07
1

Você tem sorte se pressionou Ctrl + C rápido o suficiente para não perder nenhum arquivo. Como você determinou que não perdeu nenhum arquivo?

Pressionar Ctrl + C irá interromper o processo de exclusão e terminá-lo. Portanto, você precisa verificar novamente seus arquivos / pastas e restaurar os arquivos excluídos.

    
por 18.04.2012 / 15:08
0

Você teve sorte. O processo recebeu um SIGINT , que (normalmente) mata o processo. Se você não perdeu nenhum dado, é porque o comando rm ainda estava ocupado percorrendo a estrutura de diretórios, porque ele precisa começar a excluir arquivos nos diretórios folha sem subdiretórios adicionais.

    
por 18.04.2012 / 15:08