Por que esvaziar a lixeira no nautilus demora tanto?

15

Para os fins desta pergunta, "diretório grande" significa, por exemplo, um repositório git do kernel Linux ou a fonte do Chromium.

Se eu tiver rm -rfum diretório grande como este do shell, ele será excluído em apenas alguns segundos, no máximo.

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

Por que esvaziar o lixo tão lento? O que está fazendo quando diz "preparando". Quanta preparação é realmente necessária para executar rm -rf ~/.local/share/Trash/?

Eu estive olhando isso por mais de 20 minutos agora.

Alistair Buxton
fonte
Se você tiver algum tempo livre, consulte libnautilus-private/nautilus-file-operations.ca fonte ( apt-get source nautilus). Não tenho diligência e paciência para ler C. Pergunta interessante. +1
phipsalabim
3
rm -rf ~/.local/share/Trashpode ser mais rápido. Veja askubuntu.com/a/468722/2273
Adam Monsen

Respostas:

5

Quando a primeira operação ocorre, apenas move os arquivos para a lixeira.

Quando você "lixeira" esses arquivos, ele carrega o arquivo inteiro da árvore na memória e exclui cada arquivo, um por um. Isso permite que os cálculos de tempo saibam quanto tempo leva para excluir o arquivo, quantos arquivos devem ser excluídos, qual 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

Meer Borg
fonte
quando eu acesso o lixo do nautilus, ele congela por muito tempo que não consigo pressionar nada; Gostaria de saber se poderia haver alguma maneira de desativá-lo ou pop-up, se realmente quero vê-lo no nautilus, porque eu o uso para muitas outras coisas e, de repente, tenho que esperar 3 minutos para poder usar o nautilus novamente, se eu não quero reiniciá-lo :(
Aquarius Power