Onde está a lixeira para a partição raiz?

5

Eu uso trash-put para lixeira de arquivos da linha de comando. Recentemente, eu alisei meu comando rm para trash-put para que eu não acidentalmente exclua algo importante.

No entanto, o que aconteceu agora foi que eu tive que excluir alguns arquivos da minha pasta /var/log para liberar algum espaço no sistema de arquivos / . Eu fiz isso usando sudo :

sudo rm /var/log/somelog

#Above command is equivalent to: 
sudo trash-put /var/log/somelog

Depois de fazer isso, não há espaço livre recuperado na partição, pois os arquivos devem ter sido movidos para uma lixeira. No entanto, quando eu chequei minha lixeira, não havia arquivos. Eu tentei ver se havia .Trash-100 pasta na partição / , mas mesmo isso não estava lá.

Então, para onde foi o meu arquivo na lixeira? E como posso encontrá-lo para que eu possa dizimar para recuperar algum espaço?

    
por shivams 12.06.2015 / 11:50

3 respostas

6

Esses arquivos removidos ainda podem ser abertos por outro processo. Nesse caso, o espaço no arquivo ficará disponível quando esse processo fechar seu identificador no arquivo.

Você pode pesquisar esses arquivos com lsof :

lsof |grep "var/log"|grep deleted
    
por 12.06.2015 / 12:21
2

De acordo com o manpage colocado no lixo , o lixo coloca os arquivos na lixeira, que é definida pela Especificação de Lixo do FreeDesktop.org .

No capítulo Diretórios da lixeira , a Lixeira segue esse processo de fallback:

  1. Lixeira inicial, localizada em $XDG_DATA_HOME/Trash . No seu caso, pode ser /root/Trash para raiz. Também é possível que o sudo tenha passado $XDG_DATA_HOME , portanto tente também procurá-lo em seu próprio lixo. É o lixo principal usado.
  2. Para diretórios que não compartilham a mesma raiz de montagem de $XDG_DATA_HOME , uma lixeira nos diretórios superiores dos diretórios montados pode ser usada.
    1. $topdir/.Trash/$UID pode ser tentado primeiro.
    2. Se o teste falhar (por exemplo, $topdir/.Trash não existe), use $topdir/.Trash-$UID . No seu caso, tente procurar em /.Trash-0 , pois sudo faz sua raiz UID.

Atualização:

Binging 'root trash' me dá mais.

De um tutorial muito antigo que menciona gksudo nautilus '/root/.Trash/' , o .Trash (em vez de Trash como em fd.o) o diretório em $XDG_DATA_HOME da raiz pode ser uma boa opção para começar.

De acordo com uma pergunta muito antiga em chinês , na qual .Trash-root é criado para o remetente removível disco, algumas implementações usam nome de usuário em vez do UID numérico.

    
por 12.06.2015 / 12:26
2

Os aliases não serão invocados ao usar sudo :

$ alias a=ls
$ sudo a
sudo: a: command not found

Isso significa que os arquivos foram realmente excluídos em vez de serem movidos para uma lixeira.

Se houver processos que ainda mantenham os arquivos abertos, por exemplo, para escrever para eles, o espaço usado pelos arquivos não será recuperado até que esses processos tenham fechado os arquivos ou saído.

    
por 21.01.2017 / 12:48

Tags