Como esvaziar o lixo?

2

Existe um ficheiro estranho no meu lixo que não desaparece quando esvazio o lixo. O nome do arquivo se parece com:

␀␀␀õ␀␀.õ␀

Aparentemente, o arquivo está em / Volumes / NO NAME / .Trashes / 501 / ("NO NAME" é o volume do meu boot camp, portanto, não sei ao certo por que ele tem um diretório .Trashes. "ls" esse arquivo, ou mesmo esse diretório, eu recebo:

ls: 
␀␀␀õ␀␀.õ␀
4␀␀␀õ
ls: %pre%4␀␀␀õ%pre%1␀␀.õ%pre%1␀: File name too long
1␀␀.õ%pre%1␀: File name too long

O mesmo acontece se eu tentar "sudo ls -le", "sudo ls -la" ou "sudo ls -i".

E resultados semelhantes quando tento rm ou até mesmo "encontrar. -tipo f -print0 | sudo xargs -0 rm"

Como posso me livrar disso?

    
por Paul Tomblin 25.08.2009 / 04:02

4 respostas

3

This pessoa teve o mesmo problema e corrigiu-a executando uma verificação de disco no Windows.

    
por 25.08.2009 / 05:15
3

uma coisa para tentar seria usar chamadas de nível mais baixo do que ls para listar o diretório

python -c 'import os; print repr(os.listdir("/Volumes/NO NAME/.Trashes/501/"))'

e se isso funcionar, talvez tente usar a função unlink()

edit: para desassociar o tente

python -c 'import os; os.unlink("/Volumes/NO NAME/.Trashes/501/\x04\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80o\xcc\x83\x01\xe2\x90\x80\xe2\x90\x80.o\xcc\x83\x01\xe2\x90\x80")'
    
por 25.08.2009 / 04:23
2

Você já tentou excluir por inode?

ls -i

mostrará os arquivos e seus números de inode

$ ls -i *.log
 694197 alf.log         694719 mb.log
 694181 fsck_hfs.log     24190 secure.log
 802696 hdiejectd.log   694195 system.log
1094966 install.log     694396 windowserver.log
  24189 ipfw.log

Em seguida, use find para remover por inode (digamos que eu queria excluir mb.log de cima):

find . -inum 694719 -exec rm {} \;
    
por 25.08.2009 / 04:23
1

Você pode tentar iniciar no Windows e ver se ele pode excluir o arquivo (supondo que ele possa realmente vê-lo).

    
por 25.08.2009 / 04:18

Tags