Как очистить диск на macOS без платных утилит и подписок
Знакомая картина: открываешь вкладку «Хранилище» в настройках macOS, а там гигабайты забиты категорией «Системные данные». Куда ушло место, система толком не объясняет. Начинаешь искать решение, и поисковик сразу подсовывает комбайны с красивым интерфейсом и ценником в сорок долларов за годовую подписку.
Платить за то, чтобы раз в месяц удалить кэш, разработчику обычно не хочется. В поисках легковесной альтернативы я наткнулся на проект cleanmac от разработчика Хараламби Добрева (hkdobrev). Это обычный bash-скрипт, который без лишнего шума вычищает мусор из системы.
Зачем нужен отдельный скрипт для очистки
Большинство разработчиков держат на своих машинах зоопарк из инструментов. Xcode собирает десятки гигабайт в папке DerivedData. Docker хранит слои старых образов. Менеджеры пакетов вроде npm и yarn копят кэш годами.
Вручную вспоминать все пути и команды rm -rf долго. Сторонние GUI-приложения часто висят в фоновых процессах, шлют уведомления и потребляют оперативную память. Скрипт cleanmac решает проблему прямо: запускаешь его в терминале, он проходит по известным директориям, освобождает место и завершает работу.
Сразу сделаю оговорку: автор недавно перевел репозиторий в архив и советует смотреть в сторону более свежего инструмента Mole. Но сам cleanmac.sh написан настолько прозрачно, что его легко разобрать на цитаты для своих dotfiles или использовать как готовый рецепт.
Что именно чистит cleanmac
Внутри скрипта нет никакой магии, там собраны команды для зачистки конкретных рабочих хвостов.
Скрипт проверяет четыре основные группы мусора:
- Кэш разработки: папки DerivedData и архивы Xcode, кэш npm и yarn.
- Контейнеры: неиспользуемые слои и остановленные контейнеры Docker.
- Системный мусор: логи приложений, кэш Safari, пользовательские кэши в
~/Library/Cachesи содержимое корзины. - Оперативная память: сброс дискового кэша через вызов системной утилиты
purge.
Удобно, что удаление системных кэшей настраивается по времени жизни. По умолчанию скрипт оставляет файлы, которые были созданы за последние 7 дней. Если трогать свежий кэш не хочется, можно передать другой интервал через аргументы.
Как запустить скрипт
Установка сводится к клонированию репозитория:
git clone https://github.com/hkdobrev/cleanmac.git
cd cleanmac
Перед тем как удалять гигабайты файлов, разумно посмотреть, что скрипт собирается стереть. Для этого предусмотрен безопасный режим:
./cleanmac.sh --dry-run
Флаг --dry-run выведет список путей без реального удаления данных. Если список вас устраивает, запускаем очистку:
# Очистка с сохранением кэша за последние 7 дней
./cleanmac.sh
# Очистка с сохранением кэша за последние 30 дней
./cleanmac.sh 30
Скрипт запросит права суперпользователя, если потребуется удалить системные логи или выполнить сброс оперативной памяти.
Что внутри и чему можно поучиться
Для тех, кто пишет свои сценарии автоматизации, cleanmac интересен как пример аккуратного bash-кода. В нем хорошо структурирована обработка аргументов, проверка наличия установленных утилит (например, установлен ли Docker в системе) и форматирование вывода.
Если вам не нужен весь функционал целиком, можно вытащить оттуда только нужные функции. Например, строчки для зачистки DerivedData:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
rm -rf ~/Library/Developer/Xcode/Archives/*
Или вызов очистки образов Docker:
docker system prune -af --volumes
Вынести эти пару команд в alias своего zshrc часто оказывается быстрее и безопаснее, чем ставить закрытый софт с непрозрачной телеметрией.
Кому пригодится
Проект подойдет тем, кто:
- Работает на Mac с небольшим SSD на 256 или 512 ГБ.
- Активно пишет под iOS или веб, где кэши забивают диск за пару недель.
- Предпочитает открытые shell-скрипты закрытым платным утилитам.
- Хочет подсмотреть готовые команды для собственных скриптов обслуживания системы.
Даже с учетом архивного статуса репозитория, cleanmac отлично показывает простой подход к рутине: вместо тяжелых программ иногда достаточно тридцати строк на Bash. Если же вам нужен активно поддерживаемый инструмент с интерактивным интерфейсом прямо в терминале, обратите внимание на упомянутый автором Mole. Для быстрой и разовой очистки подойдет и cleanmac.
