ZIP indir
0
main
1 dal
git@carbon4code.com:ahmet/akscamsil.git
Ahmet Kerem Sezgin V1
1 commit
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 ""