Guias/Qual app está usando um arquivo

Como descobrir qual app está usando um arquivo no Mac

Atta 🐬

Fundador do Vitals

Publicado em

Resposta rápida

Para descobrir qual app está com um arquivo aberto no Mac, digite lsof e um espaço no Terminal, arraste o arquivo para a janela e pressione Return. A primeira coluna mostra o processo. Para uma pasta, lsof +D lista tudo o que está aberto dentro dela. No Monitor de Atividade, clique duas vezes em um processo e abra Portas e Arquivos Abertos, o que ajuda quando você já suspeita de um app. Encerre esse app e o arquivo fica livre. O Vitals, um monitor de atividade e inspetor de processos para o Mac, procura em todos os arquivos abertos de uma vez: digite parte do nome em Arquivos Abertos e os apps que estão com ele aparecem.

Como encontrar o app que está usando um arquivo com o Terminal

  1. 01 Abra o Terminal, em Aplicativos → Utilitários.
  2. 02 Digite lsof e um espaço, arraste o arquivo do Finder para a janela e pressione Return.
  3. 03 Leia as duas primeiras colunas: o nome do processo e o PID dele. Se não aparecer nada, nada seu está com o arquivo aberto.
  4. 04 Rode de novo com sudo na frente para incluir os processos do macOS e de outros usuários.
  5. 05 Encerre o app que aparecer. Para um processo sem janela, rode kill <PID> com o PID dele.

O processo pode ser um auxiliar, e não um app: QuickLookUIService pertence à Visualização Rápida, e um nome terminado em Helper pertence ao app cujo nome vem antes.

O macOS mantém um arquivo ocupado enquanto um programa está com ele aberto, e é por isso que o Lixo o recusa, a renomeação falha ou um disco não ejeta. O processo é fácil de achar quando você sabe onde olhar. A tabela abaixo liga cada mensagem à causa mais comum.

Arquivo em uso: o que você vê, e a causa provável

O que você vêCausa provávelO que fazer
“A operação não pode ser concluída porque o item está sendo usado” Um app está com o arquivo aberto, ou a Visualização Rápida está mostrando o arquivo Feche o documento ou a visualização, e tente de novo
O Lixo não esvazia Um arquivo no Lixo ainda está aberto em um app Encerre o app, ou reinicie e esvazie o Lixo
Um arquivo não pode ser renomeado nem movido Um app está gravando nele Espere o salvamento ou a exportação terminar
Um disco não ejeta Um arquivo ou uma pasta nele está aberto Veja O Mac não ejeta um disco
Um arquivo está bloqueado Bloqueado está marcado em Obter Informações, o que não é o mesmo que estar em uso Desmarque Bloqueado em Obter Informações

Encontrar no Monitor de Atividade

O Monitor de Atividade não procura em todos os arquivos. Se você suspeita de um app, clique duas vezes nele, abra a aba Portas e Arquivos Abertos e procure o caminho do arquivo na lista. A lista é longa para um app ocupado, e mostra um processo por vez.

Como ler a saída do lsof

Cada linha é um arquivo aberto. COMMAND é o processo, PID o número dele, FD como o arquivo está aberto, e NAME o caminho. Em FD, um número seguido de r quer dizer leitura, w gravação e u as duas; cwd é a pasta em que o processo está trabalhando, e txt o programa e as bibliotecas que ele carregou.

Tudo o que um processo tem aberto

Para fazer o caminho inverso, de um processo para os arquivos dele, rode lsof -p <PID> com o PID dele. lsof -c Preview lista os arquivos de cada processo cujo nome começa com as letras que você informar.

Quando o arquivo está no Lixo

Esvaziar o Lixo falha enquanto algum arquivo nele estiver aberto. Encerre o app que estava com ele aberto. Se não souber qual, lsof +D ~/.Trash lista o que está aberto ali; o Terminal pode precisar de Acesso Total ao Disco para olhar. Reiniciar o Mac fecha tudo, e o Lixo esvazia depois.

Quando nada está com ele aberto

Se o lsof não mostra nada mesmo com sudo, o arquivo não está em uso. Um arquivo que você ainda não consegue alterar está bloqueado, pertence a outro usuário ou está em um disco montado só para leitura. Obter Informações mostra a caixa Bloqueado e as permissões.

O que o Vitals acrescenta

O Vitals procura em todos os arquivos abertos do Mac pelo nome.

  • Arquivos Abertos, na aba Desenvolvedor: pressione ⌘F, digite parte do nome ou do caminho de um arquivo, e cada app que mantém um arquivo correspondente aparece
  • Por app, não por processo: um auxiliar conta no app a que pertence
  • Os arquivos de cada app em um disco, com quantos estão abertos para gravação
  • Encerre o app na mesma linha, depois de uma confirmação

Bom saber

  • Sem as Métricas Completas do Sistema, os arquivos dos processos do próprio macOS ficam de fora, e o Vitals diz quantos.
  • O Vitals mostra quem está com um arquivo aberto. Ele não desbloqueia um arquivo nem muda as permissões dele.
  • Arquivos Abertos fica na janela, não no menu suspenso da barra de menus.
Comprar o Vitals por $29 $29 para sempre durante o lançamento, $49 depois, pagamento único, com reembolso em até 14 dias. Ou $15 por um ano de atualizações.

Perguntas frequentes

Como vejo qual processo está usando um arquivo no Mac?

Rode lsof seguido do caminho do arquivo no Terminal. A primeira coluna é o processo e a segunda o PID dele.

Por que o Mac diz que o item está sendo usado?

Um app ou uma visualização ainda está com o arquivo aberto. Feche o documento, encerre o app ou feche a Visualização Rápida, e tente de novo.

Como apago um arquivo que está em uso no Mac?

Encontre o app com lsof e encerre-o, depois mova o arquivo para o Lixo. Se nada aparecer, reinicie o Mac e apague o arquivo depois.

O Monitor de Atividade mostra os arquivos abertos?

Sim, um processo por vez: clique duas vezes em um processo e abra Portas e Arquivos Abertos. Ele não consegue procurar um arquivo em todos os processos.

O lsof precisa de sudo?

Sem sudo, ele lista só os seus próprios processos. Com sudo, inclui os do próprio macOS, como os do Spotlight.

Existe um app que mostra qual app está com um arquivo aberto?

O Vitals mostra. Digite parte do nome do arquivo na seção Arquivos Abertos dele e os apps que estão com ele aparecem, em qualquer disco.

No glossário

Mais guias