GNU/Linux e lixeiras (Lixeira em outras partições, etc.)
Por anos, utilizo GNU/Linux no desktop.
Por anos, a “Lixeira” de arquivos deletados foi algo misteriosa para mim.
Ora disponível, ora indisponível, no menu do gerenciador de arquivos.
Já havia me resignado a simplesmente sempre usar o Shift
+ Delete
e excluir permanentemente.
Até hoje.
Em uma rápida pesquisa, descobri o motivo.
O GNU/Linux necessita de um diretório para a “Lixeira” em cada partição em que queremos utilizar essa funcionalidade.
(Sim, ele não joga tudo na Lixeira dentro do diretório “Home” de seu usuário. Há uma Lixeira para os arquivos de cada partição - e é única para cada usuário.)
Se ele não puder criar ou encontrar esse diretório, apenas teremos a opção de “excluir permanentemente” no gerenciador de arquivos.
Então … basta criar um diretório para a “Lixeira do usuário” na partição em que queremos utilizar essa funcionalidade?
Sim!
Funciona da seguinte maneira:
No diretório raiz da partição deve existir um diretório para a “Lixeira do usuário” com o seguinte nome: .Trash-<uid>
. Sendo o uid
o id do usuário. Exemplo: Usuário joao
tem o uid
1000
, então criaremos o diretório .Trash-1000
na raiz da partição.
Vejamos um passo a passo para o usuário joao
na partição montada em /mnt/sdc1
:
0. Descubra o uid
(user id) e o gid
(group id) do usuário joao
:
1 | $ id joao |
- Crie o diretório da “Lixeira” do usuário
joao
(uid
=1000
):1
# mkdir /mnt/sdc1/.Trash-1000
- Defina as permissões corretas para o diretório da Lixeira de
joao
(uid
=1000
,gid
=1000
):1
# chown 1000:1000 /mnt/sdc1/.Trash-1000
Bônus
Onde está a Lixeira no diretório Home do usuário?
Já sabemos que em outras partições, a Lixeira é encontrada na raiz da partição utilizando o formato .Trash-<uid>
. Mas e no diretório Home do usuário, onde está a Lixeira?
De acordo com as convenções da especificação do Freedesktop.org, a Lixeira está em $XDG_DATA_HOME/Trash
, sendo que o padrão da variável $XDG_DATA_HOME
é $HOME/.local/share
.
Ou seja, no caso do usuário joao
é: /home/joao/.local/share/Trash
.
Utilizando a Lixeira na linha de comando
Quem nunca deletou via linha de comando, sem querer, um arquivo essencial?
Para evitarmos acidentes podemos utilizar também a Lixeira via linha de comando ao apagarmos arquivos e diretórios. Assim, temos uma chance de desfazer a lambança em caso de erro.
Primeiro devemos instalar o trash-cli
, um conjunto de utilitários de linha de comando para Lixeira. No caso do Fedora:
1 | # dnf install trash-cli |
Agora vejamos, alguns dos comandos mais importantes:
Para enviar arquivos para a Lixeira basta substituir o
rm
portrash
:1
$ trash arquivo-a-ser-enviado-para-Lixeira
Para retirar arquivos da Lixeira:
1
$ trash-restore /diretorio/com/arquivos/colocados/na/Lixeira
Será oferecido a lista de arquivos colocados na Lixeira desse diretório para restauração.
Para listar os arquivos da Lixeira:
(apenas lista o conteúdo da Lixeira no diretório Home do usuário)1
$ trash-list
Para limpar a Lixeira (
<dias>
é opcional. Define que devem ser excluídos apenas arquivos mais velhos que tantos dias):
(apenas limpa o conteúdo da Lixeira no diretório Home do usuário)1
trash-empty <dias>
Links
- File manager functionality - ArchWiki: A seção “Enable Trash functionality on different filesystems (external drives)” contém a dica sobre Lixeira em diferentes partições.
- The FreeDesktop.org Trash specification
- andreafrancia/trash-cli: Command line interface to the freedesktop.org trashcan: Página oficial do conjunto de utilitários de linha de comando para Lixeira
trash-cli
.