Esse comportamento é esperado, porque quando você exclui algo usando o nautilus, ele simplesmente o move para a lixeira, como você sabe.
Correção: isso não é o comportamento esperado. Como o BB1 aponta, 'mover' um arquivo para o lixo não o move em lugar algum, apenas atualiza seu inode para refletir a localização.
Eu acho que seu ram está sendo comido porque é preciso muito mais recursos do sistema para excluir (ou fazer qualquer coisa com) um monte de arquivos pequenos do que excluir um arquivo maior.
O comportamento do Lixo não parece ser muito personalizável. Não há muito a ser feito sobre isso, infelizmente. Você pode procurar em trash-cli
, mas não sei se seria mais eficiente ou não.
Quando eu tenho que apagar um monte de arquivos pequenos, eu sempre faço isso do shell, porque é mais rápido. Mesmo assim, eu encontrei um erro ao tentar excluir quase 100 mil arquivos, algo como "rm: argument list too long". Para contornar isso, eu corri rm em um loop e iterou pelos arquivos como:
for letter in {a..z};do rm -f $letter*;done
Se você quisesse imitar a funcionalidade de lixeira no shell, poderia tentar algo assim:
#!/bin/bash
## pseudotrash
elsewhere=/media/$USER/some-external-drive/pseudo-trash
for file in "$@";do
cp $file $elsewhere
if [ "$?" -eq "0" ] ; then
rm -f $file && echo "Backed up and deleted $file"||\
(echo "Could not delete $file , aborting";exit 1)
else
echo "Could not copy $file,aborting" ;exit 1
fi
done
E depois execute como:
pseudotrash 'ls'
ou
pseudotrash 'file1 file2 file3'
Espero que responda à sua pergunta e ofereça algumas dicas para ajudar a resolver seu problema.