Ahmet Kerem Sezgin V1
akscamsil akscamsil.sh
akscamsil.sh 5.3 KB
#!/bin/bash
# ============================================================
# temizlik.sh — 42 home dizini temizlik scripti
# Chrome, Slack, VS Code, Firefox cache'leri + çöp kutusu
# + Claude Code eski sürümlerini temizler.
# Ayarlar, oturumlar ve şifreler korunur.
# ============================================================
# Renkler
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
HOME_DISK="$HOME"
# --- Yardımcı fonksiyonlar ---
bos_alan() {
df -h "$HOME_DISK" | awk 'NR==2 {print $4}'
}
bos_alan_kb() {
df -k "$HOME_DISK" | awk 'NR==2 {print $4}'
}
sil() {
# sil <açıklama> <yol1> [yol2] ...
local aciklama="$1"; shift
local toplam_kb=0
for yol in "$@"; do
if [ -e "$yol" ]; then
local boyut_kb
boyut_kb=$(du -sk "$yol" 2>/dev/null | awk '{print $1}')
toplam_kb=$((toplam_kb + ${boyut_kb:-0}))
rm -rf "$yol"
fi
done
if [ "$toplam_kb" -gt 0 ]; then
printf " ${GREEN}✔${NC} %-45s %s\n" "$aciklama" "$(awk -v kb="$toplam_kb" 'BEGIN{if(kb>1048576) printf "%.1f GB", kb/1048576; else if(kb>1024) printf "%.1f MB", kb/1024; else printf "%d KB", kb}')"
else
printf " ${YELLOW}−${NC} %-45s zaten temiz\n" "$aciklama"
fi
}
calisiyor_mu() {
# Uygulama açıkken cache silmek sorun çıkarabilir, uyar
for app in chrome slack code firefox; do
if pgrep -x "$app" >/dev/null 2>&1 || pgrep -f "$app" >/dev/null 2>&1; then
printf " ${RED}⚠${NC} %s açık görünüyor — kapatman önerilir.\n" "$app"
fi
done
}
# --- Başlangıç ---
echo ""
echo -e "${CYAN}════════════════════════════════════════════════${NC}"
echo -e "${CYAN} 🧹 42 Home Dizini Temizliği${NC}"
echo -e "${CYAN}════════════════════════════════════════════════${NC}"
echo ""
ONCE=$(bos_alan)
ONCE_KB=$(bos_alan_kb)
echo -e " Temizlik öncesi boş alan: ${YELLOW}${ONCE}${NC}"
echo ""
echo -e "${CYAN}— Açık uygulama kontrolü —${NC}"
calisiyor_mu
echo ""
echo -e "${CYAN}— Temizleniyor —${NC}"
# Genel cache ve çöp kutusu
sil "Genel cache (~/.cache)" \
"$HOME/.cache"/*
sil "Çöp kutusu" \
"$HOME/.local/share/Trash/files"/* \
"$HOME/.local/share/Trash/info"/*
# Google Chrome (profil/şifreler korunur)
sil "Chrome cache" \
"$HOME/.config/google-chrome/Default/Cache" \
"$HOME/.config/google-chrome/Default/Code Cache" \
"$HOME/.config/google-chrome/Default/Service Worker/CacheStorage" \
"$HOME/.config/google-chrome/GrShaderCache" \
"$HOME/.config/google-chrome/ShaderCache" \
"$HOME/.config/google-chrome/component_crx_cache"
# Slack (giriş bilgisi korunur)
sil "Slack cache" \
"$HOME/.config/Slack/Cache" \
"$HOME/.config/Slack/Code Cache" \
"$HOME/.config/Slack/Service Worker/CacheStorage" \
"$HOME/.config/Slack/GPUCache"
# VS Code (eklentiler/ayarlar korunur)
sil "VS Code cache" \
"$HOME/.config/Code/Cache" \
"$HOME/.config/Code/CachedData" \
"$HOME/.config/Code/CachedExtensionVSIXs" \
"$HOME/.config/Code/Service Worker/CacheStorage" \
"$HOME/.config/Code/User/workspaceStorage"
# Firefox snap cache
sil "Firefox (snap) cache" \
"$HOME/snap/firefox/common/.cache"/*
# Flatpak uygulama cache'leri (varsa)
if [ -d "$HOME/.var/app" ]; then
sil "Flatpak uygulama cache'leri" \
"$HOME"/.var/app/*/cache/*
fi
# Claude Code eski sürümleri (aktif sürüm korunur)
CLAUDE_VERSIONS="$HOME/.local/share/claude/versions"
if [ -d "$CLAUDE_VERSIONS" ]; then
AKTIF=$(readlink -f "$HOME/.local/bin/claude" 2>/dev/null)
for surum in "$CLAUDE_VERSIONS"/*; do
[ -e "$surum" ] || continue
if [ "$(readlink -f "$surum")" != "$AKTIF" ]; then
sil "Claude Code eski sürüm ($(basename "$surum"))" "$surum"
fi
done
fi
# npm / pip cache (varsa)
command -v npm >/dev/null 2>&1 && npm cache clean --force >/dev/null 2>&1
command -v pip >/dev/null 2>&1 && pip cache purge >/dev/null 2>&1
sil "npm/pip cache artıkları" \
"$HOME/.npm/_cacache"
# --- Rapor ---
SONRA=$(bos_alan)
SONRA_KB=$(bos_alan_kb)
KAZANC_KB=$((SONRA_KB - ONCE_KB))
echo ""
echo -e "${CYAN}════════════════════════════════════════════════${NC}"
echo -e " Öncesi boş alan : ${YELLOW}${ONCE}${NC}"
echo -e " Sonrası boş alan: ${GREEN}${SONRA}${NC}"
if [ "$KAZANC_KB" -gt 0 ]; then
KAZANC=$(awk -v kb="$KAZANC_KB" 'BEGIN{if(kb>1048576) printf "%.1f GB", kb/1048576; else if(kb>1024) printf "%.1f MB", kb/1024; else printf "%d KB", kb}')
echo -e " Kazanılan alan : ${GREEN}${KAZANC} 🎉${NC}"
else
echo -e " Kazanılan alan : ${YELLOW}önemli bir değişiklik yok${NC}"
fi
echo -e "${CYAN}════════════════════════════════════════════════${NC}"
echo ""
# En çok yer kaplayan 5 klasörü göster
echo -e "${CYAN}— Hâlâ en çok yer kaplayanlar —${NC}"
du -h --max-depth=1 "$HOME" 2>/dev/null | sort -hr | head -6 | tail -5 | \
while read -r boyut yol; do
printf " %-8s %s\n" "$boyut" "$yol"
done
echo ""