Pourquoi la vidange de la poubelle à Nautilus prend-elle autant de temps?

15

Aux fins de cette question, "grand répertoire" signifie par exemple un référentiel git du noyau Linux ou la source Chromium.

Si j'ai rm -rfun grand répertoire comme celui-ci à partir du shell, il est supprimé en quelques secondes tout au plus.

Si je le place d'abord dans la corbeille, puis que je vide la corbeille, la première opération prend moins d'une seconde, puis la suppression proprement dite prend plusieurs minutes (nous parlons de chiffres doubles).

Pourquoi la vidange est-elle si lente? Que fait-il quand il dit "se préparer". Combien de préparation faut-il réellement pour courir rm -rf ~/.local/share/Trash/?

Je regarde ça depuis plus de 20 minutes maintenant.

Alistair Buxton
la source
Si vous avez du temps libre, vous pouvez jeter un œil libnautilus-private/nautilus-file-operations.cdans la source ( apt-get source nautilus). Je n'ai pas la diligence et la patience pour lire C. Question intéressante cependant. +1
phipsalabim
3
rm -rf ~/.local/share/Trashpourrait être plus rapide. Voir askubuntu.com/a/468722/2273
Adam Monsen

Réponses:

5

Lorsque la première opération se produit, il déplace simplement les fichiers dans la corbeille.

Lorsque vous "jetez" ces fichiers, il charge l'intégralité du fichier d'arborescence en mémoire, puis supprime chaque fichier un par un. Cela permet aux calculs de synchronisation de savoir combien de temps il faut pour supprimer le fichier, combien de fichiers doivent être supprimés, la taille de ces fichiers, bien que la plupart des paramètres ne soient pas utilisés ici, et vous permet d'appuyer sur cette petite croix rouge pour arrêtez le processus.

C'est pourquoi je supprime toujours du shell

Meer Borg
la source
quand j'accède à la corbeille nautilus, cela gèle nautilus pendant longtemps que je ne peux rien appuyer; Je me demande s'il pourrait y avoir un moyen de le désactiver ou de faire un popup si je veux vraiment le voir sur nautilus parce que je l'utilise pour beaucoup d'autres choses et puis, tout à coup je dois attendre environ 3 minutes pour pouvoir utiliser à nouveau nautilus si je Je ne veux pas le redémarrer :(
Aquarius Power