Como deletar arquivos .fuse_hidden *?

29

Eu tenho um pequeno servidor Linux (Debian Squeeze) que executa um servidor Samba que é configurado para compartilhar algumas pastas com algumas máquinas Windows. Ao tentar excluir um dos diretórios do Windows recebi o erro "Não é possível excluir pasta".

Eu tentei apagar o diretório do console do linux Eu recebi um erro semelhante:

# rm dir-name -rf
rm: cannot remove 'dir-name': Directory not empty

Eu listei o conteúdo do diretório e encontrei um arquivo chamado .fuse_hidden seguido por um número hexadecimal (000bd8c100000185).

# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000185

Eu tentei apagar o arquivo .fuse_hidden, mas um novo arquivo foi criado instantaneamente (note a alteração do número hexadecimal).

# rm dir-name/.fuse_hidden000bd8c100000185
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000186

Eu também tentei usar o Midnight Commander para excluir o arquivo sem sucesso.

Outras soluções que encontrei até agora envolvem GUI e eu só tenho console.

Todas as sugestões são bem-vindas.

    
por Lando 13.02.2013 / 22:36

2 respostas

44

Isso é semelhante ao que acontece quando você exclui um arquivo que outro sistema abriu em uma montagem NFS. O problema é que o arquivo foi removido do sistema de arquivos enquanto sua "contagem de links" era > 1, significando que outros processos ainda estão mantendo-o aberto.

  • Faça login no sistema em que o arquivo reside fisicamente. (sem montagem de rede)
  • Execute lsof dir-name/.fuse_hidden000bd8c100000185 para descobrir quais processos estão mantendo o identificador de arquivos aberto.
  • Encerre esses processos se fizer sentido ou descubra quais etapas você pode executar para "liberar" a manipulação de arquivos abertos sem encerrar o processo.

Normalmente, quando você exclui um arquivo no sistema de arquivos local que outro processo abriu, o sistema operacional atende à sua solicitação e o remove da árvore de diretórios, mas o inode para o qual a árvore aponta ainda é considerado em uso pelo sistema operacional . Toda vez que um arquivo é aberto, sua "contagem de links" é incrementada em um, e o espaço é liberado apenas quando a contagem de links atinge zero.

Quando você se depara com um problema dessa natureza, isso significa que o SO decidiu, por qualquer motivo, não remover esse arquivo da árvore de diretórios: geralmente porque tem motivos para acreditar que ele ainda precisa ser acessado por coisas que não podem utilizar o número inode direto. Inicialmente, parece que ele está de acordo, mas nos bastidores, o SO o renomeia para ter um prefixo de ponto oculto, de modo que ainda seja acessível com alguma forma de endereçamento de caminho do sistema de arquivos. O espaço ainda será liberado quando a contagem de links chegar a zero, mas esse objeto permanecerá no diretório até que os links desapareçam.

    
por 14.02.2013 / 02:16
-3

Eu tive o mesmo problema. Foi causado por um programa Python para gerenciar fotos. Depois de parar, os arquivos ".fuse ..." desapareceram imediatamente.

    
por 30.12.2015 / 10:52