
Eu costumava me perguntar por que excluir diretórios via PHP ou shell não era tão fácil quanto no Windows, bastando clicar em excluir. Percebo agora que excluir é simplesmente desvincular arquivos da tabela de alocação de arquivos, portanto, para excluir um diretório, você deve desvincular todos os arquivos dentro dele.
É possível que a entrada do diretório seja removida, mas não a dos arquivos dentro dele? Os sistemas operacionais verificam periodicamente arquivos que não podem ser acessados no sistema de arquivos?
Responder1
Muitos UNIXes possuem um unlink
comando que permitirá ao usuário root
desvincular um diretório, mas isso não acontece.nãodesvincular recursivamente o conteúdo do diretório, por isso é muito perigoso. Se isso acontecer, use fsck
para recuperar o diretório desconectado, que aparecerá na lost+found
pasta do sistema de arquivos com um nome aleatório (já que o nome foi perdido quando isso unlink
aconteceu).
Responder2
Sim, é possível, bastante improvável, já que existem procedimentos no sistema operacional para evitar que isso aconteça, mas erros de disco e estranhezas podem fazer com que coisas aconteçam.
Geralmente é isso quechkdsk,fsck, e uma série de outros utilitários foram projetados para isso. Eles leem as tabelas de alocação e as comparam com as entradas de arquivo conhecidas... qualquer coisa errada faz com que alguma ação seja tomada.
No Windows, geralmente você pode sinalizar ao Windows que deseja que uma verificação seja feita olhando noPropriedadesopção quando você clica com o botão direito nos ícones da unidade. Istopoderfaça a verificação então, embora o Windows pareça favorecer as verificações do disco de inicialização, e ele informará que isso será feito na próxima reinicialização.
No Linux, ... você pode se machucar seriamente brincando com o utilitário fsck em um sistema ativo, e é por isso que as máquinas Linux geralmente sempre fazem suas verificações do sistema de arquivos (fsck!) durante a inicialização. A simples reinicialização geralmente fará com que uma verificação aconteça. (embora eu saiba que desligar a energia do meu servidor doméstico quando o no-break falha também aciona um!) (o sistema de arquivos está marcado como sujo)
OS X? Nenhum palpite. Meio que imaginei que você tomou um gole de café com leite perto da máquina e ele consertou o que havia de errado conectando-se ao GeniusBar mais próximo. (Você provavelmente também precisa estar dentro ou perto de um Starbucks™, eu acho)