Классическая боль: ты только что снёс гигов сорок, корзину очистил, а в Finder свободного места почти не прибавилось. Или наоборот - du по домашней папке насчитал 800 ГБ на диске, которого физически 512. Кажется, что система сошла с ума. На самом деле всё логично, просто APFS и macOS считают место не так, как ты привык по Linux или Windows. В этом уроке разбираем, как реально устроено хранилище mac, что такое загадочный purgeable, как честно посчитать, куда ушло место, и как почистить диск mac безопасно - без "клинеров", которые скорее навредят.
Сначала про инструмент, который Apple сама показывает пользователю. Системные настройки -> Основные -> Хранилище (на macOS 26 Tahoe это именно System Settings, не старые Preferences). Там цветная полоска по категориям (Приложения, Документы, Система, macOS, "Системные данные") и блок Рекомендаций: "Оптимизировать хранилище", "Хранить в iCloud", "Очищать корзину автоматически". Полезно как первый взгляд, но есть две ловушки. Первая - категория "Системные данные" (бывшая "Другое") это помойка, куда macOS сваливает всё, что не классифицировала: кэши, логи, снимки, образы, временные файлы. Видеть её распухшей на 100+ ГБ нормально, и сама по себе она ни о чём конкретном не говорит. Вторая - индикатор считается асинхронно и часто отстаёт от реальности на минуты. Не доверяй цифрам слепо, проверяй командами.

Загадка purgeable: почему place на диске mac "освобождаемое"
Главный источник недопонимания - purgeable space, по-русски "освобождаемое место". Это место, которое технически занято, но macOS считает, что может отдать его в любой момент, если приложению срочно понадобится диск. Поэтому Finder в строке "доступно: 120 ГБ (из них освобождаемое: 80 ГБ)" говорит правду со своей колокольни: реально свободно меньше, но система гарантирует, что под запись освободит остальное.
Что лежит в purgeable mac:
- локальные снимки APFS, которые создаёт Time Machine (самый жирный кусок);
- кэши приложений и системы, которые можно пересоздать;
- файлы, выгруженные в iCloud при включённой оптимизации (локальная копия - кандидат на удаление);
- swap и sleepimage в /private/var/vm в некоторых состояниях.
Посмотрим вживую. Команда df на APFS показывает занятость контейнера:
Код: Выделить всё
df -H /
Filesystem Size Used Avail Capacity Mounted on
/dev/disk3s1s1 500G 23G 118G 84% /
Точнее покажет diskutil:
Код: Выделить всё
diskutil apfs list
+-- Container disk3
| Capacity In Use By Volumes: 382.0 GB (76%)
| Capacity Not Allocated: 118.0 GB (24%)
+-> Volume disk3s1 (Macintosh HD)
| Capacity Consumed: 12.1 GB
+-> Volume disk3s5 (Macintosh HD - Data)
Capacity Consumed: 361.4 GB
Снимки APFS: как найти и удалить главного пожирателя
Time Machine, даже если у тебя не подключён внешний диск для бэкапов, делает локальные снимки (local snapshots) прямо на внутреннем SSD - чтобы можно было откатиться. По умолчанию macOS держит их около 24 часов и сама подчищает, но при активной работе с большими файлами они успевают съесть десятки гигов.
Смотрим список:
Код: Выделить всё
tmutil listlocalsnapshots /
com.apple.TimeMachine.2026-06-15-091203.local
com.apple.TimeMachine.2026-06-15-031145.local
com.apple.TimeMachine.2026-06-14-194512.local
Мягкий, штатный - попросить систему "утончить" снимки, освободив N байт. Это команда thinlocalsnapshots, синтаксис: точка монтирования, сколько байт освободить, уровень срочности 1-4 (выше - агрессивнее):
Код: Выделить всё
tmutil thinlocalsnapshots / 21474836480 4
Thinned local snapshots:
com.apple.TimeMachine.2026-06-14-194512.local
Жёсткий путь - удалить конкретный снимок по метке времени (нужен sudo):
Код: Выделить всё
sudo tmutil deletelocalsnapshots 2026-06-14-194512
Deleted local snapshot '2026-06-14-194512'
Если снимки лезут постоянно и мешают, временно можно остановить автобэкап Time Machine через Системные настройки -> Основные -> Time Machine, но не отключай его навсегда без причины: локальные снимки реально спасали данные не раз.
Честный анализ: чем посчитать, куда ушло место
Чтобы понять, что чистить, нужно увидеть тяжёлые папки. Помни: на macOS это BSD-userland, флаги du/find отличаются от GNU.
du с человекочитаемыми размерами, верхний уровень домашней папки:
Код: Выделить всё
du -sh ~/* ~/Library/* 2>/dev/null | sort -rh | head -n 12
47G /Users/you/Library/Developer
22G /Users/you/Downloads
14G /Users/you/Library/Caches
9G /Users/you/Library/Containers
6G /Users/you/Movies
Поиск отдельных тяжёлых файлов. На BSD find ключ -size принимает суффикс, а вывод размеров удобно гнать через ls:
Код: Выделить всё
find ~ -type f -size +1G 2>/dev/null -exec ls -lh {} \; | awk '{print $5, $NF}'
4.2G /Users/you/Downloads/ubuntu-24.04.iso
3.1G /Users/you/Movies/render_final.mov
Что чистить руками и где грабли
Теперь конкретика, по убыванию пользы и риска.
Xcode - чемпион по мусору. У разработчика тут легко 30-50 ГБ.
- DerivedData - продукты сборки, индексы, кэши. Удаляются полностью без потерь, проект пересоберётся: rm -rf ~/Library/Developer/Xcode/DerivedData/* . Можно прицельно снести только старое: find ~/Library/Developer/Xcode/DerivedData -maxdepth 1 -type d -mtime +14 -exec rm -rf {} + (BSD find: -mtime +14 это старше 14 дней).
- Симуляторы недоступных рантаймов: xcrun simctl delete unavailable - убирает симуляторы под версии iOS, которых уже нет. Безопасно.
- Архивы и кэш устройств: ~/Library/Developer/Xcode/Archives и ~/Library/Developer/Xcode/iOS DeviceSupport (последний пересоздаётся при подключении устройства).
Логи - ~/Library/Logs и /Library/Logs. Обычно мелочь, но иногда какое-то приложение зацикливается и пишет гигабайтный лог. Найти: du -sh ~/Library/Logs/* | sort -rh | head .
Старые бэкапы iPhone/iPad - частый забытый монстр на десятки гигов: ~/Library/Application Support/MobileSync/Backup/ . Удалять лучше через приложение Apple Devices (бывший Finder/iTunes-бэкап) -> Управление бэкапами, но можно и снести папку конкретного устройства вручную, если знаешь, что бэкап неактуален.
Загрузки и корзина. Банально, но Downloads и ~/.Trash набирают вес незаметно. Корзина на внешних дисках лежит в /Volumes/ИМЯ/.Trashes.
Почему "клинеры" не нужны и почему они вредны
Вокруг запроса "очистить mac" крутится индустрия платных "ускорителей". Коротко: тебе они не нужны, а часто опасны. Причины по делу:
- Всё, что они делают полезного, ты только что сделал штатными командами: thinlocalsnapshots, чистка DerivedData, кэшей, корзины. Это не магия.
- Они любят чистить "кэши" агрессивно и не разбираясь - ломают состояние приложений, удаляют нужное, провоцируют те самые тормоза при следующем запуске.
- Многие живут в фоне резидентом, едят CPU и батарею, просят полный доступ к диску (Full Disk Access) и right на Accessibility - это огромная поверхность атаки.
- "Удаление системного мусора" под SIP невозможно в принципе, так что обещания почистить /System - либо обман, либо запрос на отключение защиты.
Мини-лаба: почистить диск mac за десять минут
Повтори руками, по шагам:
- Открой Системные настройки -> Основные -> Хранилище, запомни число свободного и размер "Системных данных".
- В терминале: df -H / и diskutil apfs list - сравни, где реально занято.
- tmutil listlocalsnapshots / - посчитай снимки. Освободи 10 ГБ мягко: tmutil thinlocalsnapshots / 10737418240 4 .
- Найди тяжёлые папки: du -sh ~/Library/* 2>/dev/null | sort -rh | head .
- Если есть Xcode: du -sh ~/Library/Developer/Xcode/* , затем rm -rf ~/Library/Developer/Xcode/DerivedData/* и xcrun simctl delete unavailable .
- Найди файлы больше гигабайта: find ~ -type f -size +1G 2>/dev/null -exec ls -lh {} \; .
- Вернись в Хранилище и сравни свободное место с пунктом 1.
Контрольные вопросы
- Почему du по домашней папке может показать больше байт, чем физический объём диска, и при чём тут снимки APFS?
- Что такое purgeable mac и почему Finder пишет "доступно" больше, чем реально свободно прямо сейчас?
- Чем отличается tmutil thinlocalsnapshots от tmutil deletelocalsnapshots и когда какой выбрать?
- Какие папки Xcode можно безопасно снести без потери исходников и почему?
Место на диске mac теряется предсказуемо: локальные снимки Time Machine, DerivedData и кэши - три кита. "Свободно" в Finder включает освобождаемое (purgeable), поэтому верь не индикатору, а df, diskutil apfs list и du. Чистить диск mac надо штатными командами и точечно, понимая, что удаляешь. Снимки - через tmutil, мусор Xcode - через rm и simctl, кэши - аккуратно по подпапкам. "Клинеры" не нужны: они дублируют эти действия, но с риском сломать систему и отдать ей полный доступ к диску.