Почніть зі встановленої програми
Цей посібник для Mac. DiskPress for Files для iPhone та iPad не має CLI чи постійного моніторингу папок. Для автоматизації на iPhone та iPad дивіться процеси Apple Команд та їхні вимоги до iOS.
Версії Mac App Store і Setapp мають однакові функції CLI. Виберіть завантаження. CLI є виконуваним файлом у пакеті програми, окремого завантаження немає. Приклади використовують копію Mac App Store за шляхом /Applications/DiskPress.app. Змініть шлях, якщо ваша копія розташована деінде.
"/Applications/DiskPress.app/Contents/MacOS/DiskPress" --help Для Setapp використовуйте виконуваний файл його інсталяції. Назва й розташування пакета можуть відрізнятися. Обидві версії мають окремі налаштування та дозволи, тому налаштовуйте ту, яку викликаєте. Вбудований --help показує приклади зі шляхом цієї інсталяції.
- Відкрийте цю копію DiskPress, перейдіть у налаштування, а потім до авторизованих шляхів.
- Додайте конкретні файли або папки, які команда зможе читати й записувати. Для стисненого файла авторизуйте папку, що його містить.
- Перевірте вибране через
scan, перш ніж використовуватиoptimize.
Запуск лише через CLI запускає процес DiskPress без регулярного моніторингу, реєстрації автозапуску чи початкового сканування економії розташувань. Після оптимізації економія оновлюється у фоні. Результат може надійти раніше, а процес чекає завершення команд і оновлення лише для читання. Якщо програму вже було відкрито, вона залишається відкритою.
Команди
Додавайте ці команди після шляху виконуваного файла. Лише scan і optimize приймають цільові шляхи, не більше 500 за запит.
| Команда | Призначення |
|---|---|
paths | Показує збережені дозволи читання й запису та їхню доступність. |
locations | Читає розташування, пов'язані програми, останній стан, розмір і виміряну економію. |
savings | Читає поточну економію стиснення й дедуплікації, а також недавню економію. |
overview | Читає огляд, зокрема місткість тому домашньої папки й стан моніторингу. |
settings | Переглядає параметри оптимізації, профілі продуктивності й правила виключення. |
activity | Читає збережені результати файлів від найновіших із пагінацією за курсором. |
scan | Перевіряє вибрані цілі й пояснює придатність без оптимізації файлів. |
optimize | Сканує цілі й поєднує стиснення з дедуплікацією, де це дозволяють налаштування та режими розташувань. Дедуплікація має бути ввімкнена. |
paths означає дозволи, а locations збережені цілі оптимізації. Вони не взаємозамінні. Зміни конфігурації та нові дозволи надаються в налаштуваннях програми.
Параметри
| Параметр | Поведінка |
|---|---|
--json | Виводить JSON-події окремими рядками у стандартний вивід. |
--quiet | Приховує проміжний прогрес, залишаючи кінцевий результат. |
--gui | Одразу показує вікно прогресу зі скасуванням для сканування чи оптимізації. Воно закривається після команди, не надає дозволів і не запитує підтвердження. |
--no-gui | Працює без вікна за замовчуванням. Не поєднуйте з --gui. |
--ignore-exclusions | Під час сканування чи оптимізації перевизначає винятки лише для явно вказаних файлів. Вміст папок дотримується винятків. Безпека й обмеження розміру стиснення залишаються чинними. |
--limit N | Розмір сторінки активності від 1 до 500, типово 50. Лише для activity. |
--before ID | Продовжує активність із курсором nextBefore попереднього результату. Лише для activity. |
-- | Завершує параметри перед шляхами, зокрема назвами, що починаються з дефіса. |
-h, --help | Показує вбудовану довідку без запуску служби програми. |
--version | Показує встановлену версію. |
--json і --quiet працюють з усіма вісьмома командами. Звіти не приймають цільових шляхів, --gui або --ignore-exclusions.
Чого очікувати під час оптимізації
Перша перевірка дублікатів може тривати довше
Коли налаштування й режими дозволяють обидві операції, DiskPress поєднує їх за один запуск. Перша перевірка дублікатів великих папок може бути тривалою навіть для стиснених файлів. Наступні проходи використовують кешовані відбитки незмінених файлів навіть після перезапуску. Перед заміною збігів усе одно перевіряються вміст і метадані.
DiskPress повторно використовує результати сканування в межах оптимізації та може пам'ятати незмінені файли без вигоди від стиснення. Відмова від повторної спроби стиснення не виключає їх із перевірки дублікатів.
Режими розташувань діють і для CLI
Виберіть режим у таблиці розташувань програми. CLI дотримується його навіть для окремих файлів або з --ignore-exclusions.
- Стиснення + Дедуплікація дозволяє обидві техніки разом.
- Лише стиснення дозволяє стиснення, але не дедуплікацію.
- Лише дедуплікація дозволяє дедуплікацію, але не стиснення.
- Вимкнено забороняє обидві операції для відповідних файлів.
Перевагу має найконкретніше відповідне розташування. Збережений файл перевизначає папку, а дочірня папка батьківську, навіть вимкнену. Нерекурсивне правило охоплює лише папку й безпосередні дочірні елементи. Поза збереженими розташуваннями діють загальні параметри й перевірки безпеки.
Дедуплікація потребує сумісного режиму й глобального параметра. Для загального вимкнення вимкніть "Дедуплікувати однакові файли". Це не вмикає стиснення для режимів лише дедуплікації чи вимкнення. Немає прапорця лише стиснення для команди або команди зміни режимів. CLI не показує початкове підтвердження дедуплікації навіть із --gui.
locations --json повідомляє enabled, але поки не містить режиму кожного розташування. settings.deduplicationEnabled є глобальним перемикачем, не режимом. Дозволені операції перевіряйте в таблиці розташувань.
Захист недавніх файлів не затримує CLI
Захист недавніх файлів затримує обробку змінених файлів у збережених розташуваннях, зокрема в моніторингу й оптимізації зараз. CLI scan і optimize є явними разовими запитами без цієї затримки, з --gui чи без, навіть для збереженого розташування.
recentFileProtectionSeconds описує затримку збережених розташувань, а не очікування CLI. Плануйте команди після завершення запису програмою, яка створює файли. Виявлення активного запису, перевірки змін і верифікація залишаються чинними.
Пов'язані програми й далі захищають розташування
Якщо є пов'язана програма, файли розташування пропускаються, доки вона працює. Це діє й для окремо вказаних файлів CLI, і --ignore-exclusions не обходить захист. Перед оптимізацією закрийте пов'язану програму.
locations --json містить linkedApplication з bundleIdentifier, path і name або null, якщо зв'язку немає. Це збережений зв'язок, а не поточний стан запуску. Попередній scan не гарантує проходження всіх перевірок при оптимізації. Дивіться FAQ про пов'язані програми.
Корисні приклади
Для зручності в одному сеансі Термінала збережіть шлях у змінній. Це не встановлює команду й не змінює конфігурацію оболонки.
DISKPRESS="/Applications/DiskPress.app/Contents/MacOS/DiskPress" Перевірте дозволи й налаштування
"$DISKPRESS" --version
"$DISKPRESS" paths --json
"$DISKPRESS" settings --json
"$DISKPRESS" locations --json Скануйте без оптимізації
Приклади використовують папку завершених даних. Замініть шлях конкретною, переважно стабільною папкою й спершу авторизуйте її. Сканування не прогнозує кінцевий рівень стиснення, а деякі перевірки сумісності відбуваються лише під час оптимізації.
"$DISKPRESS" scan --json -- "$HOME/Documents/Completed Data" Запустіть разову оптимізацію
Це змінює зберігання підтримуваних файлів і може додати записи на диск. Не оптимізуйте постійно місця з частими новими чи зміненими файлами. Перед плануванням команд прочитайте поради про записи SSD.
"$DISKPRESS" optimize --json --quiet -- "$HOME/Documents/Completed Data" Показуйте прогрес за потреби
"$DISKPRESS" optimize --gui -- "$HOME/Documents/Completed Data" Перегляньте результати
"$DISKPRESS" overview --json
"$DISKPRESS" savings --json
"$DISKPRESS" activity --limit 20 --json Результат команди описує завершене завдання. Підсумки розташувань можуть ще оновлюватися. Перевірте savings.refreshing й дати вимірювань, перш ніж вважати їх актуальними.
Зрозумійте вивід
Зрозумілий людині прогрес надходить у стандартний потік помилок, підсумок у стандартний вивід. З --json кожен рядок є окремим JSON-об'єктом. Обробляйте його як NDJSON, а не один великий JSON-документ.
- Події містять
schemaVersion,requestID,sequenceіevent. Поточна версія схеми 1. - Типи подій
progress,resultіerror. Прогрес вибірковий, тому номери послідовності можуть мати пропуски. - Кінцева подія містить
exitCodeіmessage. Подіяresultможе означати частковий успіх або скасування, тож перевіряйте й код завершення. - Назви, довідка й згенеровані повідомлення CLI англійською. Збережені записи й спільна діагностика лишаються в оригіналі. Необов'язкове вікно прогресу використовує мову програми.
- Для автоматизації використовуйте назви JSON-полів, структуровані коди причин, де доступні, та коди завершення. Не зіставляйте перекладені чи зрозумілі людині тексти повідомлень.
Результати сканування й оптимізації
scan повертає totalFiles, eligibleFiles, potentialDeduplicationFiles, logicalBytes, allocatedBytes, alreadySavedBytes та застосовані minimumFileBytes і maximumFileBytes. Потенційні кандидати не є підтвердженими дублікатами чи прогнозом економії.
reasons сканування містять code, count і message. Причини можуть перетинатися, а виключена папка рахується один раз, бо її вміст не перелічується.
optimize повертає targets, totalFiles, processedFiles, compressedFiles, deduplicatedFiles, skippedFiles, failedFiles, початковий підсумок scan і булеве cancelled. Верхньорівневі reasons є недавніми зрозумілими підсумками пропусків чи помилок, не повною історією файлів. Окремі результати читайте в activity.
Додаткові лічильники alreadyCompressedFiles, insufficientSavingsFiles і noBenefitFiles пояснюють результати, а не додаткові файли для загальної кількості.
Економія подається як compressionSavedBytes, estimatedDeduplicationSavedBytes і totalEstimatedSavedBytes, розміри в байтах. Стиснення й дедуплікація можуть стосуватися того самого файла, тому не додавайте їхні лічильники для кількості унікальних файлів. Дедуплікація оцінює спільне сховище, не гарантує такого самого приросту вільного місця. Нульова економія теж може бути успіхом.
Читайте прогрес як знімки стану
Кожна подія описує найновіший стан, а не приріст до попередньої. Для смуги використовуйте лічильники етапу, для всього завдання загальні.
| Поле JSON | Як використовувати |
|---|---|
phase | Поточний етап, наприклад finding_duplicates, grouping_duplicates, comparing, compressing, verifying або deduplicating. Етап може змінюватися без активного файла. |
phaseProcessedFiles / phaseTotalFiles | Прогрес поточного етапу. Лічильники можуть починатися заново між етапами. Нульове phaseTotalFiles означає невідому кількість, показуйте невизначений прогрес. |
processedFiles / totalFiles | Загальні лічильники. Під час discovering processedFiles рахує знайдені файли, а totalFiles дорівнює нулю. Виявлення не є завершеною оптимізацією. |
currentPath / currentFile | currentPath визначає елемент сканування. currentFile є назвою для показу, не обов'язково повним шляхом. Відсутнє чи порожнє значення прибирає попередній елемент із відображення. |
cancelled | Коли присутнє й true, оптимізація безпечно зупиняється. Поле є не в кожній події. Етап cancelling також означає зупинку. Чекайте кінцевої події й виходу процесу. |
На малих екранах прокручуйте таблицю горизонтально для повного довідника.
Пошук і групування дублікатів можуть тривати без активної назви файла. Прибирайте стару назву, якщо новий стан не має поточного елемента. Не припускайте сталого порядку етапів чи завершення команди після ліміту етапу. Лише кінцева подія й вихід процесу підтверджують завершення.
Не всі вимірювання є живим скануванням
locations, savings і overview читають збережені вимірювання без сканування файлів, нових дозволів чи моніторингу. Вони містять readAt, dataSource, locationCount, enabledLocationCount і savings. Дати у форматі ISO 8601, UTC.
Відсутнє й застаріле не однакові
measurementAvailableозначає збережене вимірювання. Невідомі значення єnull, а не нулем.measurementStaleпозначає збережене вимірювання після невдалого оновлення. DiskPress лишає останні успішні значення, не замінює їх нулем. Деталі вmeasurementErrorіmeasuredAt.savings.completeє false, якщо якесь розташування не виміряне або застаріле.unmeasuredLocationCount,staleLocationCountіoldestMeasurementAtописують охоплення та давність.statusSourceзбереженого розташування єlast_saved. Його стан не є новим скануванням цілі.
Поточна економія охоплює виміряні розташування, зокрема вимкнені, рахуючи перекриті файли раз. Розташування може мати розмір без економії, якщо спільні файли враховані деінде. Недавня економія описує завершену роботу. Не додавайте активність до поточних сум і не вважайте кожен запис окремим файлом.
На Catalina поточну економію дедуплікації виміряти не можна. deduplicationMeasurementAvailable є false, значення null. Дедуплікація працює, і недавня економія може включати її результати.
Доступність і авторизація розташувань
Кожен запис locations --json має availability зі значенням available, unavailable, stale_bookmark, missing або invalid_authorization. Це збережені стани, не нова перевірка дозволів. Вони відокремлені від булевого available у виводі paths.
invalid_authorization означає, що елемент за шляхом уже не відповідає початково авторизованому, наприклад після відновлення резервної копії. Перевірте ціль у DiskPress, видаліть розташування й додайте знову для нового дозволу. Це не видаляє файлів. Не обходьте перевірку ідентичності.
Оновлення після оптимізації
Після оптимізації DiskPress оновлює економію у фоні. CLI може повернути результат до завершення цього читання. Звіти містять savings.refreshing і savings.refreshError. Перевіряйте також дати й прапорці охоплення, бо завершення оновлення не доводить успішного вимірювання всіх розташувань.
Процес чекає команд і оновлення без увімкнення моніторингу. Окремий scan вибраного чи звіт не запитує оновлення. Для окремого оновлення вимірювань скористайтеся повторним скануванням в огляді.
Сховище й моніторинг
savings і overview містять recentSavings за 24 години, 7 і 30 днів. overview додає storage для тому домашньої папки та monitoring. Місткість запитується під час звернення незалежно від збережених вимірювань файлів.
monitoring.enabled є збереженим параметром, не означає запуску моніторингу CLI. Перед живим станом перевірте monitoring.serviceRunning і monitoring.liveStatusAvailable. Якщо він недоступний, поля прогресу є null.
Перегляньте налаштування й активність
settings --json повертає об'єкт settings з deduplicationEnabled, scanHiddenSystemFiles, recentFileProtectionSeconds, monitoringEnabled і scanIntervalSeconds. Читання не змінює значень.
Пороги стиснення подаються як minimumFileBytes, maximumFileBytes, minimumCompressionSavingsFraction і minimumCompressionSavingsBytes. Вони описують придатність, не гарантують економії для кожного файла.
settings.performance містить level, batteryLevel, separatePowerSettings і pauseMonitoringOnBattery. Значення профілів low_cpu, balanced, fast або fastest. Поточне живлення й macOS можуть впливати на активну продуктивність.
Профілі діють і для CLI. Найшвидший режим масштабує паралельність за продуктивними ядрами Mac, за потреби за фізичними. Низьке навантаження регулює темп усередині великих файлів і між ними. Це не фіксований відсотковий ліміт CPU.
settings.exclusions містить типізовані правила з id, enabled, type, target, pattern, description і extensions. Типи file_type, wildcard, regular_expression і file_group. Правило націлене на file_name або full_path. Групи файлів містять свої розширення.
Типові винятки містять групу databases. Увімкнена, вона охоплює супровідні файли баз даних на кшталт database.sqlite-wal, database.sqlite-shm і database.sqlite-journal. Список extensions має базові розширення, не всі шаблони супровідних назв. Читайте правила й перевіряйте результат через scan. Не обходьте винятки для активних баз.
Переглядайте збережені результати сторінками
activity --json повертає activity.records із GUI й CLI від найновіших. Запис містить id, date, path, name, outcome, originalAllocatedBytes, resultAllocatedBytes, savedBytes, durationSeconds, detail і locationID. Результати compressed, deduplicated, skipped, failed або recovered.
Передавайте точне значення activity.nextBefore до --before, доки activity.hasMore не стане false. Типово 50 записів, --limit приймає 1-500. Великі записи можуть скоротити сторінку, тому орієнтуйтеся на курсор, не кількість. Нові записи не зсувають наявні курсори.
Очищений або прострочений курсор повертає помилку. Почніть без --before. Активність є збереженою історією, не повним переліком файлів. Кілька записів можуть стосуватися одного файла, а відсутність запису не доводить, що його ніколи не оптимізували.
Коди завершення й безпечне скасування
| Код | Значення |
|---|---|
0 | Завершено. Можливі безпечні пропуски чи нульова економія. |
1 | Операція не вдалася або відновлення потребує уваги. |
2 | Частковий успіх. Деякі файли не вдалося оптимізувати чи прочитати або сталася помилка розділу статистики. |
64 | Некоректна команда чи аргументи. |
75 | Служба недоступна або кінцевий результат не доставлено. Перед повтором перегляньте активність і повідомлення відновлення. |
77 | Ціль не має придатного збереженого дозволу. |
130 | Скасовано. Дочекайтеся цього виходу, перш ніж вважати операцію зупиненою. |
Ctrl+C, SIGTERM, скасування або закриття вікна запитують безпечну зупинку. Дайте процесу завершитися. Оптимізовані файли залишаються такими. Втрата термінального клієнта чи каналу виводу також скасовує роботу.
Видалення залученого розташування в програмі також може скасувати CLI-оптимізацію. CLI повідомить скасування навіть без Ctrl+C. Прогрес може містити phase як cancelling і cancelled як true. Кінцевий результат має exitCode 130 і cancelled як true. Завершена оптимізація зберігається, повна зупинка лише після виходу процесу.
Якщо стандартний вивід не приймає результат, код завершення лишається визначальним. Не обривайте вивід навмисно командою на кшталт head. Використовуйте --quiet, коли потрібен лише кінцевий результат.
Прийняті запити не повторюються після збою процесу. Код 75 не доводить відсутності змін файлів. Якщо результат не доставлено, перегляньте активність і відновлення перед рішенням повторити.
Розумний процес роботи ШІ-агента
DiskPress надає команди, а агент вирішує, як їх викликати. Задайте чіткі межі. Нижче корисна початкова інструкція.
Прочитай --version і --help встановленого виконуваного файла DiskPress.
Використовуй ту саму версію для дозволів, налаштувань і команд.
Перевір шляхи, налаштування й розташування з --json.
Дотримуйся режимів розташувань. CLI-звіти їх не показують.
Попроси підтвердити режим у Розташуваннях, якщо процес від нього залежить.
Скануй лише файли чи папки, які я явно виберу.
Пам'ятай, що CLI не застосовує захист недавніх файлів.
Поясни придатність і запитай перед оптимізацією.
Поважай пов'язані програми й дочекайся завершення запису файлів.
Не надавай дозволів і не використовуй підвищені привілеї.
Не обходь винятки без мого явного прохання.
Звітуй про результат за кінцевою JSON-подією й кодом завершення.
Після скасування чекай виходу процесу, зокрема при зупинці з програми.
Перед звітом про суми перевір refreshing, прапорці застарілості й дати.
Якщо немає результату чи сталася помилка відновлення, переглянь активність перед повтором. Передавайте кожен шлях окремим аргументом після --. Не додавайте неекрановані назви до команд оболонки. За відсутності дозволу попросіть авторизувати шлях у DiskPress замість циклічних повторів або sudo.
Після попереджень чи помилок читайте причини файлів в активності. Успішний запуск може не заощадити, а безпечний пропуск не завжди є помилкою. При помилці відновлення збережіть файли й повідомте текст. Після скасування чекайте виходу процесу.
DiskPress не звертається до ШІ-сервісів. Агент може отримувати приватні шляхи, назви й активність через локальний вивід та передавати постачальнику. Це визначають його налаштування й політика конфіденційності.
Дозволи й безпека залишаються чинними
До оптимізації всі цілі мають бути охоплені придатними дозволами читання й запису. Якщо хоча б одна без доступу, команда завершується помилкою до обробки решти. CLI не відкриває вибір дозволів, не надає доступу й не обходить захищені шляхи. Папка може охоплювати нащадків, але дозвіл файла не поширюється на сусідні.
paths --json повертає authorizations з path, directory, access і available. Значення доступу readWrite. Недоступний дозвіл може потребувати підключення тому або повторної авторизації шляху в тій самій версії DiskPress.
Програма й CLI мають спільний рушій, перевірки, відновлення, винятки й обмеження файлів. Програми та виконувані файли не підтримуються. Дедуплікація групує лише в одній сумісній файловій системі, не між томами. Перевизначення винятків не вимикає безпеку, пов'язані програми чи режими розташувань.
Сканування й оптимізації Термінала виконуються по одному в поточному сеансі macOS зі спільним плануванням CPU, відновленням і обліком. Звіти, налаштування й активність лише для читання можуть працювати паралельно. Немає команд увімкнення демона, зміни параметрів чи скасування завершених змін сховища.
Зберігайте незалежну резервну копію. Перед автоматизацією важливих даних прочитайте FAQ про перевірку й відновлення.