rm -rf deixou um diretório undeleteable; como posso removê-lo?

0

Eu apenas rm -rf d algum lixo (resumindo, não use o Unreal e o Git, ele quebra as coisas). Agora eu tenho um arquivo que ls -Al no Bash lista como este:

d????????? ? ?    ?    ?           ? old-folder-name

Seu inode está listado como ? por ls -i . rm old-folder-name falha sem esse arquivo ou diretório e ls também imprime essa mensagem, embora isso não a impeça de listá-la. Qualquer tentativa de mv , cd ou algo parecido falhará por esse motivo também.

Atualmente, estou na WSL e, ao excluí-lo através do Gerenciador de arquivos em uma conta de administrador, recebo um erro sem sentido sobre a necessidade de permissão de um administrador. Ambos del e rmdir falham também. Claramente, o Windows também não funcionará nisso.

Como posso excluir esta pasta?

NB: Depois de uma reinicialização (ou seja, desligar a noite e reabri-la pela manhã) ele desapareceu. Eu ainda gostaria de uma explicação de como esse tipo de coisa pode acontecer.

    
por Nic Hartley 02.07.2017 / 09:59

1 resposta

0

O "arquivo" que você deseja apagar não é um arquivo, é um diretório.
O comando simples rm não irá apagá-lo, você precisa usar rmdir ou um comando rm mais complexo (como o rm -rf que você usou). Note também que o rmdir não apagará o diretório se não estiver vazio.

No entanto, como ls está imprimindo ? , é provável que no diretório pai , o diretório tenha permissões de leitura (r), mas não de execução (x) (cd para ele).
A solução é fazer com que o diretório (pai) tenha permissões x e, se você for o proprietário, leia e grave as permissões:

chmod 711 old-folder-name(parent)

Então, se (se old-folder-name estiver vazio):

$ cd old-folder-name(parent)
$ rmdir old-folder-name

ou:

$ cd old-folder-name\(parent\)/
$ rm -rf old-folder-name 
    
por 02.07.2017 / 17:20