Por que o esvaziamento do lixo no nautilus demora tanto?

15

Para o propósito desta questão, "diretório grande" significa, por exemplo, um repositório git do kernel do Linux ou a origem do Chromium.

Se eu rm -rf um diretório grande como esse do shell, ele é excluído em apenas alguns segundos no máximo.

Se eu movê-lo para a lixeira primeiro e depois esvaziar a lixeira, a primeira operação leva menos de um segundo, então a exclusão real leva vários minutos (estamos falando de números duplos).

Por que o esvaziamento é tão lento? O que está fazendo quando diz "preparando"? Quanto de preparação realmente leva para executar rm -rf ~/.local/share/Trash/ ?

    
por Alistair Buxton 08.03.2013 / 22:01

1 resposta

5

Quando a primeira operação ocorre, os arquivos são movidos para a lixeira.

Quando você "lixeira" esses arquivos, ele carrega todo o arquivo da árvore na memória e, em seguida, exclui cada arquivo, um por um. Isso permite que os cálculos de temporização saibam quanto tempo leva para excluir o arquivo, quantos arquivos devem ser excluídos, o tamanho desses arquivos, embora a maioria dos parâmetros não seja usada aqui, e permite que você pressione essa pequena cruz vermelha para pare o processo.

É por isso que eu sempre apago do shell

    
por Meer Borg 12.03.2013 / 18:00