Os Arquivos Deixados Para Trás Quando Você Apaga um App do Mac
Arrastar um app para a Lixeira deixa caches, containers e preferências no disco. Onde achar essas sobras no seu Mac e como removê-las de vez.
Mais guias como este, por enquanto, só estão disponíveis em inglês. Ver todos os artigos
O Windows tem um registro e uma convenção de desinstalação que, de forma imperfeita, tenta limpar
depois de si mesmo. O macOS não tem nenhum dos dois. Quando você arrasta um app para a Lixeira, você
remove exatamente uma coisa: o pacote .app. Tudo o mais que ele já escreveu no seu disco — e um
app típico escreve em cinco ou seis lugares diferentes — permanece exatamente onde estava,
permanentemente, a menos que você mesmo vá procurar.
Onde um app realmente escreve, além do próprio pacote
Um único app pode deixar arquivos em todos esses locais, nenhum dos quais é tocado quando você apaga o app em si:
~/Library/Application Support/<AppName> # ajustes, bancos de dados locais, às vezes caches enormes
~/Library/Caches/<bundle.id> # cache reconstruível — veja o guia dedicado abaixo
~/Library/Containers/<bundle.id> # apps em sandbox ganham um sistema de arquivos privado completo aqui
~/Library/Preferences/<bundle.id>.plist # ajustes, minúsculo, mas soma entre centenas de apps
~/Library/Saved Application State/<bundle.id>.savedState # estado de restauração de janela/aba
~/Library/Logs/<AppName> # logs de diagnóstico, às vezes gigabytes para apps tagarelas
Nada disso é um bug ou um app se comportando mal — esse é o lugar documentado e correto para um app colocar esses dados. O problema está inteiramente do lado da remoção: nada no macOS é responsável por limpar isso quando o app em si vai embora.
Encontrando o que pertence a um app que você já apagou
Se você já arrastou o app para a Lixeira e só agora se pergunta o que ele deixou para trás, o identificador de pacote (bundle identifier) dele é a chave — tudo acima fica catalogado sob esse identificador, mas você não tem mais o app por perto para te dizer qual era.
# Busca nos metadados do Spotlight por um identificador de pacote plausível
mdfind "kMDItemCFBundleIdentifier == '*appname*'"
# Ou simplesmente busque pelo nome do app diretamente nos locais usuais de sobras
find ~/Library/Application\ Support ~/Library/Caches ~/Library/Containers \
~/Library/Preferences ~/Library/Saved\ Application\ State ~/Library/Logs \
-iname "*appname*" -maxdepth 1 2>/dev/null
Identificadores de pacote são DNS reverso (com.company.AppName), então buscar pelo nome da empresa
ou do produto geralmente traz à tona toda pasta relevante, mesmo quando o identificador exato não é
óbvio.
Quais sobras realmente valem a pena apagar
Nem toda sobra vale a pena perseguir individualmente — um arquivo .plist de preferências tem
alguns kilobytes, e caçar ele para cada app que você já removeu não é um bom uso de uma tarde. As
que vale a pena se importar são as grandes:
~/Library/Containers/<bundle.id>— para apps em sandbox (a maioria dos apps modernos da App Store, e muitos outros), isso é efetivamente um sistema de arquivos privado sobre o qual o app tinha controle total. Editores de vídeo, ferramentas de design, e qualquer coisa que processa arquivos de mídia grandes rotineiramente deixam containers de vários gigabytes para trás.~/Library/Application Support/<AppName>— é onde mora o banco de dados local de verdade de um app, se ele tiver um. Apps de chat, apps de anotações, e qualquer coisa com cache offline costumam colocar vários gigabytes aqui.~/Library/Logs/<AppName>— geralmente pequeno, mas um pequeno número de apps (ferramentas de videoconferência são um reincidente comum) registra logs de forma tão verbosa que chega a um gigabyte ou mais ao longo do tempo.
~/Library/Caches/<bundle.id> para um app apagado é inequivocamente seguro — é cache de um app que
não existe mais para usá-lo, então não há nenhum custo de reconstrução a se preocupar, diferente de
limpar o cache de um app que você ainda usa.
# Depois de confirmar que o app realmente sumiu e identificar suas pastas:
rm -rf ~/Library/Application\ Support/AppName
rm -rf ~/Library/Containers/com.company.AppName
rm -rf ~/Library/Caches/com.company.AppName
A única coisa que vale a pena checar antes de apagar um Container
O Container de um app em sandbox pode, em casos raros, guardar a única cópia de algo que você criou dentro daquele app e nunca exportou — alguns apps de anotações e de desenho guardam o seu conteúdo real desse jeito em vez de numa pasta Documents comum. Antes de apagar um Container de um app sobre o qual você está em dúvida, abra o app mais uma vez (se ainda conseguir) e confira se tem algo dentro dele que você gostaria de exportar primeiro. Depois de ter certeza, apagar é imediato e irreversível no sentido de que não há nada para regenerar — igual a qualquer exclusão de arquivo, só que sem um app por perto para te avisar.
Por que isso é pior do que parece, em escala
Ninguém desinstala um app e se preocupa com 200 MB de sobras. O custo de verdade é cumulativo: um Mac que já teve cem apps instalados e removidos ao longo de vários anos — versões de teste, utilitários avulsos, apps que você experimentou e não manteve — pode facilmente estar carregando 10–20 GB de dados órfãos de software que nem está mais na máquina, invisível porque não há nenhum ícone no Finder para te lembrar que ele já existiu.
O DevCruft, um app gratuito para Mac que estamos construindo para desenvolvedores, está sendo projetado para fazer essa busca automaticamente: encontrar cada sobra de um app que não está mais instalado e recuperar tudo numa só passagem. Ele ainda está em desenvolvimento, então por enquanto use os comandos acima — eles são grátis e funcionam, só que mais devagar para cem apps do que para um. Para saber quando ele for lançado, entre na lista de espera.
Para as pastas de cache que apps que você ainda usa deixam para trás, veja
o guia de ~/Library/Caches.