Como você notou com razão, a GUI faz mais do que apenas "excluir" os arquivos.
$ rm -rf
apenas se repete em pastas, excluindo os arquivos e pastas encontrados lá.
A GUI primeiro examina a árvore inteira para descobrir o que há lá (para saber o quanto precisa fazer para desenhar a barra bonita) e, em seguida, retorna pela árvore novamente, movendo os arquivos do local atual para o local da barra. arquivos de lixeira para sua GUI específica. Essa mudança leva mais tempo, pois é necessário primeiro gerar um novo nome de arquivo exclusivo, vincular o arquivo na pasta lixeira, desvinculá-lo da pasta atual e atualizar um índice de onde os arquivos vieram para que eles possam ser "desfeitos" - muitas operações em vez de apenas uma.
Por exemplo, no Gnome 3, os arquivos são movidos para o local:
~/.local/share/Trash/files/<filename>[.<version>]
Onde filename
é o nome do arquivo original e version
é um número de versão incremental para garantir que o arquivo seja exclusivo (a primeira instância do arquivo não possui número de versão). Associado a isso, há um .trashinfo
arquivo armazenado na pasta:
~/.local/share/Trash/info/<filename>[.<version>].trashinfo
Este arquivo contém o caminho original do arquivo antes da exclusão, bem como a data e a hora em que esse arquivo foi excluído.
Todas essas operações extras, que devem ser executadas em todos os arquivos individuais da árvore que você está excluindo, garantem a capacidade de restaurar qualquer arquivo da lixeira e a exclusão de arquivos com o mesmo nome no diretório mesmo local e ainda restaura versões anteriores.
Nada disso é feito com um simples rm
ou mv
comando.