Substituir "recurso está ocupado" quando rm no Terminal Mac OS X

4

Quando tento excluir um arquivo

sudo rm -rf filename

Eu cuspo de volta:

rm: filename: Resource is busy

Como posso substituir isso? Eu sei para um fato que o recurso não está ocupado. Eu só quero deletar isso!

    
por CodeGuy 12.02.2013 / 23:23

8 respostas

9

Você não pode sobrescrever esse comportamento.

O sistema operacional informa que está ocupado. O sistema operacional provavelmente está correto. A mensagem de erro pode ser por esses motivos:

  • o arquivo está sendo usado por outro processo
  • há um problema com o seu sistema de arquivos

Como você deseja excluir o arquivo, minha sugestão é inicializar a máquina a partir de uma imagem do Linux, montar seu sistema de arquivos e excluir o arquivo.

    
por 13.02.2013 / 00:36
5

Experimente lsof filename para ver se está realmente ocupado. Uma das causas mais comuns disso é que você está tentando remover um diretório em que você tem um shell aberto.

    
por 12.02.2013 / 23:26
1

Como outros pôsteres dizem, se você conhece melhor o sistema operacional, reinicie o sistema e isso fará com que ele se esqueça. Mas, na verdade, eles sabem do que estão falando ...

    
por 13.02.2013 / 00:58
1

Esta é uma pergunta antiga, mas adicionarei meus 2 centavos, porque há situações em que um arquivo não está realmente em uso, mas o sistema operacional ainda pensa que é.

É possível que um arquivo em um dispositivo removível esteja em uso durante uma falha do sistema e o sistema continuará acreditando que o arquivo ainda está em uso, mesmo que o lsof não retorne nada e o arquivo não esteja realmente em uso. A exclusão de .DS_store não tem efeito.

Temporariamente, pode-se renomear o arquivo ou a pasta, se necessário. Em seguida, remova o utilitário de disco e repare as permissões de disco / reparo no volume.

    
por 28.10.2014 / 16:23
1

Todas as opções acima. O sistema não costuma mentir, o que significa que às vezes acontece.

Continue lendo, porque eu tive uma situação única na qual nenhuma das soluções sugeridas anteriormente funcionou, mas consegui resolver meu problema.

No meu caso, o arquivo "ocupado" era um arquivo de fonte TrueType .ttf em um "disco externo" em uma unidade conectada à rede e, portanto, provavelmente não seria aberto pelo sistema na inicialização. O comando lsof não mostrou nada. Uma reinicialização do mac não mudou nada. Desligar o único outro computador na rede que poderia estar usando o arquivo não alterou nada.

O Utilitário de Disco não podia fazer nada com a unidade, porque não era apenas um dispositivo removível, era um dispositivo remoto, não conectado diretamente ao Mac.

Eu copiei o arquivo com um novo nome, porque no meu caso eu queria renomeá-lo, não excluí-lo. Depois de copiar, não consegui excluir o original porque ele ainda estava "ocupado".

Eu entrei na unidade conectada à rede e tentei "verificar" o "disco externo", mas a verificação falhou. Mas agora eu era capaz de apagar o arquivo original - no Finder, sem usar sudo ou rm -f ou qualquer coisa assim. Não estava mais "ocupado".

    
por 26.02.2015 / 13:56
1

A coisa mais fácil que você pode fazer é

lsof +D /path/in/question

Você receberá uma lista de processos que têm controle sobre esse processo

Mate os processos listados

kill -9 <numberOfProcessID>

Obviamente sem o < 's

    
por 11.10.2016 / 15:50
0

Eu tive um problema semelhante quando o arquivo main.css foi bloqueado ao mudar de um ramo para outro no Git. O repositório estava em um servidor de arquivos e eu estava conectado ao SMB. Meu cliente é um Mac executando o OSX 10.10.5 (Yosemite).

A reinicialização do cliente não ajudou. Eu não conseguia mudar de galho. Eu não pude esconder. Eu não pude apenas rm o arquivo. Eu estava presa.

Então percebi que podia acessar o servidor diretamente. Lá, fui capaz de rm o arquivo e, em seguida, check-out de uma nova versão. De volta ao meu cliente, tudo ficou bem instantaneamente.

Apenas para o caso de ser útil a alguém que encontre esse tópico como eu fiz.

    
por 13.04.2017 / 01:07
0

Inicialize o utilitário de disco e verifique se há uma imagem montada que corresponda a esse nome de diretório. Ejete a imagem e o diretório desaparecerá.

    
por 12.02.2018 / 21:58

Tags