
Há um arquivo estranho na minha Lixeira que não desaparece quando eu esvazio a lixeira. O nome do arquivo é semelhante a:
␀␀␀õ␀␀.õ␀
O arquivo aparentemente está em /Volumes/NO NAME/.Trashes/501/ ("NO NAME" é o volume do meu boot camp do Windows, então nem sei por que ele tem um diretório .Trashes. Se eu tentar "ls" esse arquivo, ou mesmo esse diretório, eu recebo:
ls: \004␀␀␀õ\001␀␀.õ\001␀: File name too long
A mesma coisa acontece se eu tentar "sudo ls -le", "sudo ls -la" ou "sudo ls -i".
E resultados semelhantes quando tento rm ou mesmo "find . -type f -print0 | sudo xargs -0 rm"
Como posso me livrar disso?
Responder1
Esta pessoative o mesmo problema e corrigi-lo executando uma verificação de disco no Windows.
Responder2
uma coisa a tentar seria usar chamadas de nível inferior que ls para listar o diretório
python -c 'import os; print repr(os.listdir("/Volumes/NO NAME/.Trashes/501/"))'
e se funcionar, talvez tente usar a unlink()
função
edit: para desvincular 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")'
Responder3
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 queira excluir mb.log acima):
find . -inum 694719 -exec rm {} \;
Responder4
Você pode tentar inicializar no Windows e ver se ele consegue excluir o arquivo (supondo que ele realmente possa vê-lo).