#!/bin/bash # Сканирование кандидатов на перенос на внешний носитель (цель — освободить ~100 ГБ). # Показывает крупные каталоги и опционально — не менявшиеся давно (редко используемые). OUTPUT_MODE="${1:-size}" # size | old | both DAYS_OLD="${2:-90}" # для old: не менявшиеся N дней echo "==========================================" echo " Кандидаты на перенос (освобождение ~100 ГБ)" echo "==========================================" echo "" echo "=== Крупные каталоги в ~/code (топ по размеру) ===" du -sh ~/code/* 2>/dev/null | sort -hr | head -20 echo "" echo "=== Известные тяжёлые каталоги пользователя ===" for path in \ "$HOME/code/legal" \ "$HOME/g.drive mikhevel" \ "$HOME/Library/Application Support/Telegram Desktop" \ "$HOME/code/methatron" \ "$HOME/code/repo-clean-secrets-workdir-20260303-192601" \ "$HOME/code/archive" \ "$HOME/code/backups" \ "$HOME/code/bots" \ "$HOME/code/sacred_songs" \ "$HOME/.gradle" \ "$HOME/Library/Android/sdk" \ "$HOME/.cursor" \ "$HOME/.vscode"; do if [ -d "$path" ]; then du -sh "$path" 2>/dev/null fi done echo "" if [ "$OUTPUT_MODE" = "old" ] || [ "$OUTPUT_MODE" = "both" ]; then echo "=== Крупные каталоги в ~/code, не менявшиеся ${DAYS_OLD}+ дней (редко используемые) ===" find ~/code -maxdepth 2 -type d -mtime +"$DAYS_OLD" -exec du -sh {} \; 2>/dev/null | sort -hr | head -15 echo "" fi echo "=== Свободное место на корневом разделе ===" df -h / | tail -1 echo "" echo "Цель: не менее 60 ГБ для Asahi Fedora, рекомендуется 80–100 ГБ." echo "Подробности: docs/disk_cleanup/MOVE_TO_EXTERNAL_100GB.md"