![como deletar um arquivo por um inode no kernel do Linux](https://rvso.com/image/782589/como%20deletar%20um%20arquivo%20por%20um%20inode%20no%20kernel%20do%20Linux.png)
Peguei o inode de um arquivo no kernel do Linux, quero deletar o arquivo pelo inode.
Preciso desvincular todos os dentry do inode? ou preciso desvincular algum dente?
Quais bloqueios devo usar para proteger o quê?
Responder1
Chamadas de remoção de arquivo portátil, unlink(), remove() e wrappers de nível superior, praticamente todos levam nomes de caminho. Os inodes são principalmente um detalhe de implementação.
Para fazer isso em shell, use ferramentas como GNUencontrar.
find /tmp -type f -inum $INODE
Substitua /tmp
pelo caminho a ser pesquisado, $INODE
pelo número. Adicione -delete
se desejar que os resultados sejam desvinculados. Vários nomes do mesmo inode podem ser encontrados.
Como este método percorre todos os arquivos, não é eficiente.
Responder2
No Linux, você não pode excluir um arquivo.
O que vocêpodeO que fazer é remover todas as referências a ele e então o sistema de arquivos removerá automaticamente o espaço e marcará o inode como não utilizado.
Mas observe que os arquivos podem ser referenciados por processos em execução. O arquivo ainda existirá mesmo que nada no sistema de arquivos aponte para ele. Até que o processo termine ou feche o arquivo, ele ainda existirá.