Você provavelmente já viu anúncios de aplicativos "mágicos" que prometem limpar seu Mac, liberar gigabytes de espaço e deixá-lo rápido como novo. O que eles não te contam é que a maioria dessas ferramentas cobra assinaturas anuais caras (algumas custam mais de R$ 150/ano) apenas para executar comandos que o seu próprio sistema operacional já possui nativamente.
Hoje, vou te ensinar como se livrar dessas mensalidades. Vamos criar uma ferramenta de manutenção gratuita, transparente e mais poderosa que a maioria dos softwares pagos, usando um script em Bash que executa uma limpeza profunda (Deep Clean) no seu sistema.
Por que você não precisa pagar por limpeza?
O macOS é baseado em Unix. Isso significa que ele possui rotinas de manutenção poderosas embutidas no core do sistema. Aplicativos pagos, na grande maioria das vezes, são apenas interfaces bonitas (GUIs) que rodam comandos de terminal escondidos.
A solução que vamos implementar abaixo atua diretamente nessa camada do sistema, fazendo o seguinte:
- Limpeza Real: Remove caches de sistema, usuário e navegadores (Chrome, Safari, Firefox).
- Manutenção Profunda: Reconstrói índices do Spotlight, corrige ícones duplicados e rotaciona logs.
- Foco em Desenvolvedores: Limpa "lixo" do Docker, Homebrew e Xcode (algo que limpadores comuns para usuários leigos ignoram).
- Segurança e Conveniência: Fecha seus apps salvando o estado atual e os reabre automaticamente após a limpeza.
O Script "Deep Clean"
Abaixo está o código completo. Ele é seguro, auditável (você pode ler exatamente o que ele faz linha a linha) e totalmente gratuito.
Passo 1: Criar o Arquivo
- Abra o seu editor de código favorito (VS Code, Sublime) ou o Editor de Texto (TextEdit).
Nota: Se usar o TextEdit, vá em Formatar > Converter em Texto Simples (Cmd+Shift+T).
Copie e cole o código abaixo:
#!/bin/bash
# ==============================================================================
# TÍTULO: Script de Manutenção, Limpeza e Otimização para macOS (Ultimate)
# VERSÃO: 1.0 (Deep Clean - Nível CleanMyMac)
# ==============================================================================
# Cores
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
APPS_LIST="/tmp/apps_to_reopen.txt"
clear
echo -e "${BLUE}============================================================${NC}"
echo -e "${BLUE} FERRAMENTA DE LIMPEZA PRO - VERSÃO 1.0 (DEEP CLEAN) ${NC}"
echo -e "${BLUE}============================================================${NC}"
echo ""
# Verifica Root
if [ "$EUID" -ne 0 ]; then
echo -e "${YELLOW}[!] Necessário permissão de administrador para limpeza profunda.${NC}"
echo -e "${YELLOW}[!] Digite sua senha (ela não aparece ao digitar):${NC}"
sudo "$0" "$@"
exit
fi
REAL_USER="${SUDO_USER:-$USER}"
# ==============================================================================
# [1/7] Gestão de Apps (Snapshot e Fechamento)
# ==============================================================================
echo -e "\n${YELLOW}[1/7] Gerenciando Aplicativos...${NC}"
> "$APPS_LIST"
APPS=$(osascript -e 'tell application "System Events" to get name of (processes where background only is false)')
IFS=',' read -r -a APP_ARRAY <<< "$APPS"
for app in "${APP_ARRAY[@]}"; do
app=$(echo "$app" | xargs)
if [[ "$app" != "Finder" && "$app" != "Terminal" && "$app" != "iTerm" && "$app" != "Warp" && "$app" != "System Events" ]]; then
echo "$app" >> "$APPS_LIST"
echo -e " - Fechando: $app"
osascript -e "quit app \"$app\"" > /dev/null 2>&1
fi
done
sleep 3
# ==============================================================================
# [2/7] Limpeza de Sistema e Arquivos Ocultos
# ==============================================================================
echo -e "\n${YELLOW}[2/7] Limpeza de Arquivos de Sistema...${NC}"
echo -e "${GREEN} > Esvaziando todas as Lixeiras...${NC}"
rm -rfv ~/.Trash/* > /dev/null 2>&1
sudo rm -rfv /Volumes/*/.Trashes > /dev/null 2>&1
echo -e "${GREEN} > Removendo arquivos .DS_Store (Varredura Otimizada)...${NC}"
find "$HOME" -type d \( -name "Containers" -o -name "Group Containers" \) -prune -o -name ".DS_Store" -delete > /dev/null 2>&1
echo -e "${GREEN} > Limpando Logs do Sistema e de Usuário...${NC}"
rm -rf ~/Library/Logs/* > /dev/null 2>&1
sudo rm -rf /Library/Logs/* > /dev/null 2>&1
sudo rm -rf /var/log/*.log > /dev/null 2>&1
sudo rm -rf /private/var/log/* > /dev/null 2>&1
echo -e "${GREEN} > Limpando Itens Temporários (Tmp)...${NC}"
sudo rm -rf /private/var/folders/* > /dev/null 2>&1
# ==============================================================================
# [3/7] Limpeza Profunda de Cache (Library)
# ==============================================================================
echo -e "\n${YELLOW}[3/7] Limpeza Profunda de Cache (User & System)...${NC}"
echo -e "${GREEN} > Limpando Caches Gerais (~/Library/Caches)...${NC}"
rm -rf ~/Library/Caches/* > /dev/null 2>&1
sudo rm -rf /Library/Caches/* > /dev/null 2>&1
echo -e "${GREEN} > Limpando 'Saved Application State' (Resolve falhas de apps)...${NC}"
rm -rf ~/Library/Saved\ Application\ State/* > /dev/null 2>&1
echo -e "${GREEN} > Limpando pastas órfãs (Vazias) em Application Support...${NC}"
find ~/Library/Application\ Support/ -type d -empty -delete > /dev/null 2>&1
# ==============================================================================
# [4/7] Limpeza Específica de Navegadores
# ==============================================================================
echo -e "\n${YELLOW}[4/7] Limpeza de Caches de Navegadores...${NC}"
echo -e "${GREEN} > Otimizando Caches do Chrome/Chromium...${NC}"
rm -rf ~/Library/Application\ Support/Google/Chrome/Default/Application\ Cache/* > /dev/null 2>&1
rm -rf ~/Library/Application\ Support/Google/Chrome/Default/Service\ Worker/CacheStorage/* > /dev/null 2>&1
rm -rf ~/Library/Caches/Google/Chrome/* > /dev/null 2>&1
if [ -d ~/Library/Caches/Firefox ]; then
echo -e "${GREEN} > Otimizando Caches do Firefox...${NC}"
rm -rf ~/Library/Caches/Firefox/* > /dev/null 2>&1
fi
echo -e "${GREEN} > Otimizando Caches do Safari...${NC}"
rm -rf ~/Library/Containers/com.apple.Safari/Data/Library/Caches/* > /dev/null 2>&1
# ==============================================================================
# [5/7] Limpeza de Desenvolvimento (Dev Junk)
# ==============================================================================
if command -v brew &> /dev/null; then
echo -e "${GREEN} > Homebrew: Removendo versões antigas e cache...${NC}"
brew cleanup -s > /dev/null 2>&1
rm -rf $(brew --cache) > /dev/null 2>&1
fi
if command -v docker &> /dev/null; then
if pgrep -x "Docker" >/dev/null; then
echo -e "${GREEN} > Docker: Removendo volumes e imagens não utilizados...${NC}"
docker system prune -f > /dev/null 2>&1
fi
fi
if [ -d ~/Library/Developer/Xcode/DerivedData ]; then
echo -e "${GREEN} > Xcode: Limpando DerivedData...${NC}"
rm -rf ~/Library/Developer/Xcode/DerivedData/* > /dev/null 2>&1
fi
# ==============================================================================
# [6/7] Manutenção do Sistema
# ==============================================================================
echo -e "\n${YELLOW}[6/7] Otimização do Sistema e Rede...${NC}"
echo -e "${GREEN} > Rotação de Logs (Newsyslog)...${NC}"
sudo newsyslog -F > /dev/null 2>&1
echo -e "${GREEN} > Reconstruindo LaunchServices (Corrige 'Abrir Com')...${NC}"
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user > /dev/null 2>&1
echo -e "${GREEN} > Resetando QuickLook (Minimiza uso de CPU por 'qlmanage')...${NC}"
qlmanage -r > /dev/null 2>&1
qlmanage -r cache > /dev/null 2>&1
echo -e "${GREEN} > Resetando DNS e purgando RAM inativa...${NC}"
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
if command -v purge &> /dev/null; then sudo purge; fi
# ==============================================================================
# [7/7] Atualização e Restauração
# ==============================================================================
echo -e "\n${YELLOW}[7/7] Finalizando: Atualização e Reabertura...${NC}"
if [ -n "$REAL_USER" ]; then
echo -e "${GREEN} > Tentando executar 'atualizar_meumac'...${NC}"
sudo -u "$REAL_USER" /bin/zsh -i -c "source ~/.zshrc 2>/dev/null; atualizar_meumac" || echo -e " (Comando ignorado)"
fi
echo -e "\n${BLUE} > Restaurando aplicativos...${NC}"
if [ -f "$APPS_LIST" ]; then
while IFS= read -r app; do
if [ ! -z "$app" ]; then
echo -e " - Reabrindo: $app"
open -a "$app" > /dev/null 2>&1
sleep 0.5
fi
done < "$APPS_LIST"
rm "$APPS_LIST"
fi
echo -e "\n${BLUE}============================================================${NC}"
echo -e "${GREEN} LIMPEZA PROFUNDA CONCLUÍDA! (NÍVEL MAXIMO) ${NC}"
echo -e "${BLUE}============================================================${NC}"
echo ""
echo "Pressione qualquer tecla para sair..."
read -n 1 -s
exit 0
Passo 2: Salvar e Configurar
- Salve o arquivo com o nome
LimpezaPro.command. Dica: A extensão
.commandé essencial para que ele se comporte como um executável ao clicar.Agora precisamos dar permissão de execução. Abra o Terminal e digite:
chmod +x
(Importante: Deixe um espaço após o+xe arraste o arquivo que você criou para dentro da janela do Terminal).Aperte Enter.
Passo 3: Evitar Pop-ups (Acesso Total ao Disco)
Como o script faz uma varredura profunda (Lixeira, Downloads, Caches, Logs), o macOS pode ficar pedindo permissão para acessar cada pasta individualmente. Para evitar isso e garantir que o script funcione 100% sem interrupções:
- Abra Ajustes do Sistema (System Settings).
- Vá em Privacidade e Segurança (Privacy & Security).
- Procure por Acesso Total ao Disco (Full Disk Access).
- Clique no botão
+ou ative a chave ao lado de Terminal. - Se usar iTerm ou Warp, ative para eles também.
Como Usar
Agora você tem seu próprio aplicativo de limpeza, feito sob medida.
- Dê um clique duplo no arquivo
LimpezaPro.command. - Ele abrirá o Terminal automaticamente.
- Digite sua senha de administrador quando solicitado.
Nota de segurança: A senha não aparecerá na tela enquanto você digita. Isso é o padrão do Unix.
Veja a mágica acontecer: ele fechará seus apps (salvando o estado), limpará tudo e reabrirá seu ambiente de trabalho automaticamente.
O que este script faz que "vale ouro"?
Muitos scripts na internet apenas apagam a lixeira. Este vai além:
- Inteligência de Arquivos (.DS_Store): Remove arquivos de metadados ocultos que costumam corromper o Finder e deixar a navegação em pastas lenta (especialmente em redes), mas faz isso de forma inteligente, pulando diretórios sensíveis para evitar travamentos.
-
Gestão de Memória RAM (
purge): Executa o comando nativo que força o macOS a liberar memória inativa marcada como "ocupada", dando um fôlego novo para máquinas com 8GB ou 16GB de RAM. -
Correção de Bugs Visuais (
lsregister): Sabe quando o ícone do Word fica branco ou aparece duplicado no menu "Abrir Com"? Este comando reconstrói o banco de dados de serviços de lançamento e corrige isso. - Privacidade: Limpa caches de DNS (que registram sites visitados) e limpa metadados de apps desinstalados que ficam ocupando espaço na sua pasta Library.
Pare de alugar o desempenho do seu computador. Use o poder do Terminal e tenha um Mac sempre rápido, de graça.
> **Disclaimer:* Sempre faça backups regulares do seu sistema. Embora este script use comandos padrão de manutenção e limpeza de cache (que são regenerados pelo sistema), é boa prática ter um Time Machine atualizado.*
Top comments (0)