Executando verificação de segurança...
2

Script para limpar cache e logs no mac

Eu adoro trabalhar com o MacOS, mas por quê?

  • Ele roda muito bem qualquer stack (todas as que eu testei rodou muito bem).
  • A bateria dele dura muito tempo (o meu depois de 5 anos ainda dura mais de 4 ~ 5 horas desenvolvendo, 3 dias ou 4 dias com ele ligado parado).
  • Consigo desenvolver para IOS e para Android.
  • O ecossistema dele é fantástico (é caro, mas é muito bom).
  • Um equipamento leve e bonito que você pode levar para qualquer lugar.

Mas nem tudo são rosas:

  • Como mencionei acima é um computador caro.
  • Dependendo do modelo você só pode usar 1 monitor
  • Dependendo do modelo não pode fazer upgrade
  • Muitas ferramentas são pagas

Quanta enrolação antes de ir direto para o assunto hahahahaa. Sim, precisei adicionar alguns pontos positivos e alguns pontos negativos, pois o título do meu artigo se encaixa junto com o último ponto, ferramentas pagas para limpar a sujeira que tem no mac você só acha ferramentas pagas, mas de um tempo para cá comecei a estudar um pouco mais sobre cibersegurança.

Mas o quê uma coisa tem com a outra?

Uma das coisas que aprendemos em seguraça é escrever alguns scripts, para manipulação de pastas e arquivos, então para praticar um pouco mais do assunto e pensando em ferramentas de limpeza do mac, juntei os dois. Criei um script em bash, para poder limpar a pasta de cache e de logs do usuário, eu disponibilizei no git-gist, para qualquer modificação, mas vou deixar o código aqui na integra, gostaria da opião de vocês, talvez em como melhorar o script e também algo que poderia ser acrescentado.

#!/usr/bin/env bash

set -e

echo "🧹 Iniciando limpeza de cache e logs no macOS..."

USER_CACHES="$HOME/Library/Caches"
SYSTEM_CACHES="/Library/Caches"

USER_LOGS="$HOME/Library/Logs"
SYSTEM_LOGS="/Library/Logs"

clean_dir () {
  local DIR=$1
  local LABEL=$2

  if [ -d "$DIR" ]; then
    echo "→ Limpando ${LABEL}: $DIR"
    find "$DIR" -mindepth 1 -maxdepth 1 -exec rm -rf {} + 2>/dev/null || true
  else
    echo "⚠️  Diretório não encontrado: $DIR"
  fi
}

# Cache do usuário
clean_dir "$USER_CACHES" "cache do usuário"

# Logs do usuário
clean_dir "$USER_LOGS" "logs do usuário"

if [[ $EUID -eq 0 ]]; then
  # Cache do sistema
  clean_dir "$SYSTEM_CACHES" "cache do sistema"

  # Logs do sistema
  clean_dir "$SYSTEM_LOGS" "logs do sistema"
else
  echo "ℹ️  Cache e logs do sistema ignorados (execute com sudo para limpar)"
fi

echo "✅ Limpeza finalizada com sucesso."
Carregando publicação patrocinada...