DigitableCourses
Настройки портала
Показать возможности портала

Локально и без аккаунта. Аккаунта нет, регистрация не нужна: введённое в инструменты остаётся в localStorage браузера и на сервер не уходит.

Свой счётчик считает открытия страниц и дочитывания: уезжает адрес и десятая доля текста. Без cookies и чужих счётчиков, IP не хранится, Do Not Track уважается. Как это проверить

Репозиторий портала не выложен, «открытым кодом» мы его не зовём. Открыто это:

Живёт портал на донатах, платных консультациях и разборах по запросу и покупке Workbench.

Планов делать курсы платными нет.

digitdisk

Куда ушло место на диске и как себя чувствует машина. Уборка планом: в корзину или насовсем, с подтверждения.

Живой экран, снятый прогоном

$ digitdisk analyze /home/user --live --lang ru

Экран digitdisk analyze /home/user --live --lang ru: 20 строк; текстом — рядом.
Обход идёт: числа растут, назван текущий каталог, перечень помечен ПРЕДВАРИТЕЛЬНО.
Весь экран текстом
 ◇ digitdisk  обход /home/user                                                              Digitable  10:25:28
 ⠧  ИДЁТ ОБХОД   11 с
────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  записей         48 128   файлов 37 904 · каталогов 10 153 · ссылок 71
  объём           1,5 ГиБ
  скорость        4 095 записей/с · 131,6 МиБ/с
  сейчас          /home/user/.npm/_cacache/content-v2/sha512/c5/5a   глубина 6
  записей/с       ▅▄▄▄▄▄▄▄▅▄▅▄▄▄▄▃▄▄▄▄▄▄▄▃▄▄▄▇▇▇▇▇█▇▇▆▅  пик 7 178/с

  ЧЕМ НАПОЛНЕНО   ПРЕДВАРИТЕЛЬНО
     1. ███████████████████████─────    81,6%  project/                                   1,2 ГиБ    31 859 зап.
     2. █████───────────────────────    18,0%  .npm/                                    278,2 МиБ    16 257 зап.
     3. ────────────────────────────     0,4%  Downloads/                                 6,4 МиБ         7 зап.
     4. ────────────────────────────     0,0%  .cache/                                        0 Б         0 зап.



────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ОБХОД   48 128 записей · 1,5 ГиБ                                     ↑ ↓ прокрутка · l язык · q прервать обход

$ digitdisk analyze /home/user --live --lang ru

Экран digitdisk analyze /home/user --live --lang ru: 32 строк; текстом — рядом.
Тот же экран после обхода: «c» строит план и просит набрать точное число файлов — пока оно не набрано, не двинется ни один.
Весь экран текстом
 ◇ digitdisk  обойдено /home/user                                                           Digitable  10:26:43
  ИТОГ    ДЕРЕВО    КРУПНЕЙШЕЕ    МОЖНО УБРАТЬ    РАЗРЯДЫ    ПРОПУЩЕНО    МЕСТА    ЖУРНАЛ
────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  ПЛАН УБОРКИ

  отмечено ничего — план по всему обойденному дереву

  к переносу      474 файлов, 50,9 МиБ
  место не освободится: перенос — это переименование, байты остаются на диске.
  освободит только `digitdisk purge <корзина> --confirm N`.

  по разрядам:
     Кэш            471 файлов       3,1 МиБ
     Сборка         3 файлов      47,8 МиБ


  корзина: /home/user/.digitdisk-trash

  первые из списка:
       47,8 МиБ  Сборка       /home/user/project/node_modules/hugo-bin/vendor/hugo
      332,6 КиБ  Кэш          …d1a47b1b1/node_modules/mdn-data/css/properties.json
      197,9 КиБ  Кэш          …3e2bd1a47b1b1/node_modules/css-tree/dist/csstree.js
      197,8 КиБ  Кэш          …d1a47b1b1/node_modules/css-tree/dist/csstree.esm.js
      187,5 КиБ  Кэш          …modules/csstree-validator/dist/csstree-validator.js
      187,4 КиБ  Кэш          …les/csstree-validator/dist/csstree-validator.esm.js
     …и ещё 468

  число файлов: ▏

────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ГОТОВО   104 219 записей · 6,5 ГиБ  строки 1–27 из 28                                Esc — отменить, q — выход

$ digitdisk analyze /home/user --live --lang ru

Экран digitdisk analyze /home/user --live --lang ru: 28 строк; текстом — рядом.
Тот же план, другой глагол: забой стирает насовсем, корзины не будет. Число файлов снова набирается вручную, и Esc не трогает ничего.
Весь экран текстом
 ◇ digitdisk  обойдено /home/user                                                           Digitable  10:28:12
  ИТОГ    ДЕРЕВО    КРУПНЕЙШЕЕ    МОЖНО УБРАТЬ    РАЗРЯДЫ    ПРОПУЩЕНО    МЕСТА    ЖУРНАЛ
────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  СТЕРЕТЬ НАСОВСЕМ

  стереть насовсем  474 файлов, 50,9 МиБ
  освободится 50,9 МиБ — на этот раз по-настоящему
  корзины не будет: файлы уходят с диска, и вернуть их нечем.

  отмечено каталогов: 1

  исчезнет:
       47,8 МиБ  Сборка       /home/user/project/node_modules/hugo-bin/vendor/hugo
      332,6 КиБ  Кэш          …d1a47b1b1/node_modules/mdn-data/css/properties.json
      197,9 КиБ  Кэш          …3e2bd1a47b1b1/node_modules/css-tree/dist/csstree.js
      197,8 КиБ  Кэш          …d1a47b1b1/node_modules/css-tree/dist/csstree.esm.js
      187,5 КиБ  Кэш          …modules/csstree-validator/dist/csstree-validator.js
      187,4 КиБ  Кэш          …les/csstree-validator/dist/csstree-validator.esm.js
      177,6 КиБ  Кэш          …2e3e2bd1a47b1b1/node_modules/mdn-data/l10n/css.json
     …и ещё 467

  число файлов: ▏

  наберите число файлов (474) и Enter — стереть насовсем; Ctrl-U стереть, Esc отменить

────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ГОТОВО   104 219 записей · 6,5 ГиБ                                                   Esc — отменить, q — выход

$ digitdisk status --live --lang ru

Экран digitdisk status --live --lang ru: 22 строк; текстом — рядом.
Загрузка и все 256 ядер по отдельности — настоящие. Имя узла demo — песочницы.
Весь экран текстом
 ◇ digitdisk  demo · Ubuntu 26.04 LTS · 7.0.0-29-generic    Digitable  10:29:04
  КОМАНДЫ  ‹  ЗАГРУЗКА  ›  4/11
────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  средняя           22,91 / 22,69 / 22,06  (1/5/15 мин)
  ядер              256
  в очереди         22 из 7844

  занято ЦП    ███────────────────────────────  8,2% (замер 200 мс)
  история      ····························▁▁▁

  по ядрам          замерено 256 из 256  (окно 200 мс)
  разброс           мин 0,0% · медиана 0,0% · макс 100,0% (ядро 6)
  под нагрузкой     15 ядер из 256 заняты больше чем наполовину

  КАРТА ЯДЕР
     0–95  ▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁█▁▁▁▃▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁█▁▁▂▁▁▁▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁
   96–191  ▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁█▁▁▁▁▇▁▁▁█▁▃▁▁▁▁▁▁▂▁▁▇▁▁▁▁▅▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁
  192–255  █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
  ячейка — ядро: ▁ пусто, █ занято целиком
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ЖИВОЙ   замер 1 с назад · длился 241 мс · каждые 2 с  строки 1–17 из 25                    1 КОМАНДЫ · q выход

Снято 2026-09-03, digitdisk 0.8.0, sha256 0c9e5d2122f9, через псевдотерминал. Знаки, колонки и цвет — из прогона, добавлен шрифт. Под /home/user — настоящие каталоги этой машины. полный status --json, 37989 байт

Право удалять

Место кончилось, и надо понять куда. du и ncdu ответят, но убирать вы будете руками. Чистильщик уберёт сам — по списку известных путей; список и есть его право удалять, и берёте вы его на веру.

digitdisk права по списку не даёт никому. Приговор выносит ядро на flang, и «МожноУбрать» оно не выносит ничему, кроме кэша, журналов и сборок: это постусловие функции, а не строчка описания.

Одного постусловия мало, и дерево инструмента говорит об этом само: пока приметы искались подстрокой пути, оно оставалось верным, а инструмент четырежды ошибся на живой машине — на файлах pip под каталогом build, на слое образа контейнера с составляющей cache, на настройках .logseq, на письме под каталогом tmp. «Убираем только кэш» — верно; «помеченное кэшем и есть кэш» — не следует. Теперь путь режется на составляющие, и два постусловия держат остальное: адресуемое содержимым не убирается никогда, а без приметы-составляющей разряд решает один размер.

Справочник знает 102 места, у каждого — ссылка на документацию, где хозяин каталога зовёт его кэшем. Права удалять он не даёт: называет разряд, судит ядро. Защитный список вычитает и не добавляет.

С 0.8.0 экран обхода умеет забой: он стирает насовсем, минуя корзину. Второй дороги к удалению это не заводит — план строит то же ядро и тем же приговором; ново одно: вернуть нечем. Поэтому вопрос сперва называет число файлов.

Три смотрят, три убирают, одна помнит, одна меряет

status

ЦП и каждое ядро, память, диски, сеть, температура, видеокарты.

analyze <путь>

Обход дерева. Экран не отчёт: по дереву ходят, отмечают и убирают отсюда.

clean <путь>

План: что, сколько и по какому правилу. Без --apply ничего не открывается на запись.

restore <корзина>

Возврат по журналу корзины. Ключа не требует: ключи — на разрушении.

purge <корзина>

Единственное необратимое. Требует --confirm N: столько файлов, сколько в ней.

places

102 известных места и что из них есть на машине.

history <путь>

Чем кончались прошлые уборки под этим корнем.

run <команда>

Запустить чужую команду и показать её цену: время ЦП, пик памяти по дереву процессов, память видеокарты.

Где инструмент останавливается

  • Не по маске и не по списку имён: только то, чему ядро вынесло «МожноУбрать».
  • За корень не выходит, корзина внутри него, каталог и ссылку не тронет.
  • Linux и macOS, Windows нет: на маке в снимке нет ни видеокарт, ни температуры. О карте NVIDIA без nvidia-smi знает имя и шину.

Исходники и сборки