“não pode remover 'some_directory': Diretório não vazio”

20

Eu tentei deletar algum diretório, mas

$ rm DE.aspx_files -r
rm: cannot remove 'DE.aspx_files': Directory not empty

Mas listar seu conteúdo não retorna nenhum

$ ls DE.aspx_files
$

Adicionado: na verdade

$ ls -la DE.aspx_files

total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting    0 Sep 13 22:34 ..
-rw------- 1 ting ting    0 Sep 13 22:34 .fuse_hidden0001d4bf00000006

Quando eu tento rm .fuse_hidden0001d4bf00000006 , ele é excluído, mas outro novo .fuse_hidden0001d4bf00000007 é criado.

Então, pergunto-me o que aconteceu e como resolver este problema?

Nota: é um HDD externo portátil recentemente comprado, e eu apenas copio alguns arquivos para ele usando um programa de recuperação de dados.

SO: Ubuntu 12.04

Obrigado!

    
por Tim 15.09.2012 / 02:34

6 respostas

12

Arquivos ocultos

Você pode ter arquivos ocultos. Você pode encontrá-los com ls -la para ter certeza de que está realmente excluindo-os primeiro. Em seguida, você pode excluir os arquivos antes de executar rm -r ou rmdir conforme necessário.

Forçando a exclusão recursiva

Você também pode fazer rm -rf para forçar a exclusão recursiva, mesmo que o diretório de destino contenha arquivos. Todos os avisos usuais se aplicam, mas ele fará o trabalho independentemente do diretório que contém - desde que você tenha permissões para excluir os arquivos e diretórios, é claro.

    
por 15.09.2012 / 02:45
45

Os arquivos do formulário .fuse_hidden* são criados pelos sistemas de arquivos FUSE quando um arquivo é excluído, mas ainda está em uso em algum lugar e ainda deve ter uma entrada de diretório. Isso é semelhante aos arquivos .nfs* nos diretórios exportados pelo NFS .

Execute df -T . para ver o tipo de sistema de arquivos montado no diretório atual e seu ponto de montagem. Para um disco rígido externo, é provável que este seja um sistema de arquivos NTFS montado através do driver NTFS-3G , que é base no FUSE.

O nome é um nome falso que o driver do sistema de arquivos inventa para um arquivo excluído. Você não pode excluir o arquivo (ou melhor, se você criar o arquivo, ele reaparecerá sob outro nome). Você não pode excluir o diretório, pois não está vazio. Você precisa encontrar o que está usando este arquivo. A causa mais provável de estar em uso é se ela for aberta por algum aplicativo. Execute lsof /media/mount-point , em que /media/mount-point é o ponto de montagem do sistema de arquivos e procure por um arquivo aberto nesse diretório.

    
por 17.09.2012 / 01:57
7

Para discos rígidos externos, esse problema pode ser resolvido por

  • Clique com o botão direito na pasta e selecione Move to Trash
  • Esvazie o lixo

Funcionou para mim mesmo se rm -rf não funcionasse.

    
por 30.08.2017 / 19:15
0

Se no mac, esteja ciente também dos arquivos * .localizados, que podem se tornar invisíveis até mesmo para 'ls -la', 'find' e seu tipo em um sistema de arquivos FUSE. [Descoberto usando um sistema de arquivos FUSE criado pelo ConnectedData Transporter em um MacBook Pro.]

    
por 25.08.2015 / 12:39
0

Isso pode acontecer quando você está semeando um arquivo em um cliente de torrent também. Apenas certifique-se de desligar o cliente de torrent ou remover o torrent de semeadura.

    
por 04.03.2016 / 06:15
0

Uma possibilidade comum é que o diretório esteja sendo mantido por um processo em execução. Execute ps aux para verificar se há algo suspeito. Além disso, tente reiniciar a máquina.

    
por 28.03.2017 / 04:44

Tags