TutoriaisVídeo

Trash-1000: Como funciona a lixeira no Linux?

Você tem a pasta Trash-1000 oculta em algum diretório do seu Linux? Há muito tempo várias distros apresentam este diretório e ao longo da história, e muitos usuários se questionam sobre ele. Será um vírus? Como essa pasta veio parar no meu sistema? Posso apagar ela? 

A resposta para essas intrigantes perguntas nos leva a entender melhor como um sistema operacional como o Linux lida com arquivos, especialmente aqueles que você não quer mais e joga no lixo.

Como um arquivo é identificado no Linux

Cada computador tem um hardware de armazenamento de dados, um HD ou SSD, por exemplo, que serve para armazenar o próprio sistema operacional, os aplicativos que você usa todo dia e claro, os seus preciosos arquivos. Quando você cria um arquivo, o sistema operacional aloca um espaço no disco para ele, juntamente com um inode responsável por manter os metadados do arquivo que foi criado. 

Metadados, são informações sobre os dados. É por causa deles que o seu arquivo pode receber um nome, e ter informações sobre o tamanho, em que diretório está armazenado, ou ainda a que tipo de software ele se associa, permitindo que os programas tratem ele como um arquivo de texto, de vídeo, ou de imagem. Tudo isso acontece dentro do que se chama de sistema de arquivos, como o EXT4 e o NTFS.

Uma analogia simples de se fazer é que, se os arquivos são como livros, o sistema de arquivos é estante da biblioteca onde os livros serão organizados. Uma vez gravados, o sistema pode acessar os dados desses arquivos sempre que você precisar, sendo exatamente o que acontece quando você dá dois cliques em alguma coisa.

Quando deixa de precisar de algum desses arquivos, você apaga enviando eles para a lixeira. Mas, você já se perguntou para onde vão os arquivos que você manda para a lixeira? Onde exatamente é a lixeira?

E mais importante do que isso, o que acontece quando você apaga algo da lixeira?

Entendendo como funciona a lixeira do Linux

Você já deve ter ouvido falar sobre softwares ou serviços para recuperar dados que foram apagados de dispositivos. “Trash” ou “Trash-1000” é a pasta da lixeira do Linux. É incrível como o conceito de lixeira é algo que praticamente todo mundo que usa o computador conhece, mas poucos realmente sabem como ela funciona.

Para começar, quando você apaga um arquivo, ele não é realmente apagado de verdade do sistema de arquivos, a única coisa que muda são os metadados. O sistema operacional marca o inode que representa o arquivo e o local onde ele está gravado como “disponível”, isso permite que esse espaço e inode possa ser usado por outro arquivo.

Do lado do usuário, a única coisa que aparece é que algum espaço foi liberado, o arquivo fica invisível na tela, como se nunca tivesse existido. Mas não quer dizer que os dados que compunham o arquivo que você excluiu da lixeira realmente deixaram de existir no disco, isso só realmente acontece quando ele for sobrescrito. 

É por isso que aplicativos de recuperação de dados funcionam, enquanto os seus dados não forem sobrescritos, eles sempre poderão ser recuperados, mesmo que parcialmente. Na prática, a única coisa que aconteceu depois que você esvaziou a lixeira, é que o sistema perdeu a informação de quais bits dentro do dispositivo de armazenamento representam alguma coisa.

Apesar do sistema operacional funcionar assim por baixo dos panos, para o usuário essas operações são bem mais intuitivas e totalmente visuais, a pessoa apaga o arquivo, ele é movido para a lixeira, a pessoa esvazia a lixeira, o arquivo desaparece num passe de mágica. Isso é o que se chama de “camada de abstração”.

Para a maioria das pessoas, isso é o suficiente para uma gestão de arquivos e de espaço em disco efetiva, mas a gente não precisa nem chegar ao sistema de arquivos e aos inodes para ver que, na prática, as coisas funcionam de forma diferente.

Ao mover um arquivo para a lixeira no Linux, onde ele vai parar?

No caso do Linux, a pasta da lixeira que aparece na interface é total virtual. Se você der um CTRL+L dentro dela para exibir a barra de endereços, o endereço que aparece é “trash:///”. Meio esquisito, mas é o nome do protocolo da interface com a lixeira de forma gráfica em ambientes de desktop Linux.

Trash-1000: Como funciona a lixeira no Linux? 5

Apesar de não parecer, esse caminho, na verdade, aponta para uma pasta específica no diretório home de cada usuário do sistema.
Você pode até tentar a na sua casa: acesse a pasta oculta “.local” dentro da sua home, depois “share” e “Trash”, você efetivamente vai estar no diretório da lixeira!

Trash-1000: Como funciona a lixeira no Linux? 4

Aqui dentro temos 3 diretórios, expunged, files e info, cada um serve para uma coisa. A pasta “expunged” serve como um diretório temporário para arquivos deletados da lixeira, é quase a lixeira da lixeira, os arquivos existem aqui por um tempo muito pequeno, até o kernel marcar o espaço que eles ocupavam no sistema de arquivos como disponível.

Na pasta “files” temos efetivamente os arquivos na lixeira. Se você já recuperou coisas da lixeira, sabe que ao restaurar os arquivos eles voltam para onde estavam antes de você ter apagado eles, e isso só é possível porque existem informações que dizem para o sistema em que diretório o arquivo estava antes dele ser apagado.

Como você pode ter deduzido, a pasta “info” guarda essas informações, dentro dela a gente tem o nome do arquivo com a extensão “trashinfo”, e como no Linux tudo são arquivos, se a gente abrir ele, dá para ver que informação ele contém.

Trash-1000: Como funciona a lixeira no Linux? 3

Temos ali o caminho onde o arquivo costumava estar, e também data de quando ele foi apagado. Esses são metadados que podem ser úteis para você poder restaurar o arquivo da lixeira para a pasta original, além de permitir que mecanismos de limpeza automática da lixeira também entrem em ação, apagando arquivos mais velhos do que uma determinada data, por exemplo.

Como essa é a pasta comum do sistema, você também pode copiar os arquivos de dentro para qualquer outro lugar que você queira, sem passar pela interface da lixeira. Se apagar um arquivo dessa pasta, ele será excluído da lixeira também. Se você apagar essas pastas, o sistema criará elas de novo no próximo login.

Entendendo o .Trash-1000

A nomenclatura “.Trash-1000” geralmente aparece em unidades de disco diferentes da que contém a raiz do sistema operacional, como um pendrive, um HD externo, ou uma unidade extra que você tenha conectada internamente no seu computador, mas sem o sistema operacional.

De início, essa pasta não está presente, bastando apagar algum arquivo para ela ser criada. Nela, temos um conjunto de diretórios semelhante à lixeira do sistema que vimos antes, uma pasta com os arquivos de fato, outra com os metadados.

Para não confundir a cabeça de quem simplesmente usa o computador, ao clicar no ícone da lixeira do gerenciador de arquivos, ele mostra os arquivos que acabamos de apagar no pendrive, juntamente com os arquivos de lixeira do sistema.

Trash-1000: Como funciona a lixeira no Linux? 2

É por isso que o protocolo da lixeira é importante, ele unifica as lixeiras de todos os dispositivos nesse local especial.

O motivo para o 1000: unidades de disco diferentes podem ser acessadas por usuários diferentes do computador, e no Linux, além de um nome, cada usuário recebe um número identificador. Pelo comando whoami, posso saber qual o nome do usuário do sistema. Com o comendo cat no arquivo “/etc/passwd”, encontramos informações sobre os vários usuários do sistema, filtrando por pelo nome de usuário, note que ele recebe o número “1000” como identificador, por isso o nome da lixeira criada em dispositivos assim recebe o nome de “.Trash-1000”, ou seja, é a lixeira criada pelo usuário 1000.

É por isso que o protocolo da lixeira é importante, ele unifica as lixeiras de todos os dispositivos nesse local especial.O motivo para o 1000: unidades de disco diferentes podem ser acessadas por usuários diferentes do computador, e no Linux, além de um nome, cada usuário recebe um número identificador. Pelo comando whoami, posso saber qual o nome do usuário do sistema. Com o comendo cat no arquivo “/etc/passwd”, encontramos informações sobre os vários usuários do sistema, filtrando por pelo nome de usuário, note que ele recebe o número “1000” como identificador, por isso o nome da lixeira criada em dispositivos assim recebe o nome de “.Trash-1000”, ou seja, é a lixeira criada pelo usuário 1000.

Mas ela poderia ter outro nome, caso o computador tenha múltipla contas de usuário, e outra conta tenha sua lixeira em um pendrive.

Por fim, a pasta “Trash-1000” é como a pasta RECYBLEBIN no Windows, cada uma funcionando ao seu modo.

Gosta de Linux e quer conhecer ainda mais a fundo recursos como o terminal, shellcript, além de soluções profissionais em software open source? Conheça os cursos que disponibilizamos para assinantes Diolinux Play!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!