Есть ли способ использовать функцию клонирования при записи в APFS, чтобы освободить место из существующих дубликатов файлов?
Когда вы копируете файл в APFS, он фактически не дублирует файловые блоки, а просто клонирует метаданные. Это не позволяет ему использовать больше места, пока вы на самом деле не внесете изменения в дубликат файла. Кажется, что должен быть какой-то инструмент для поиска существующих дубликатов и замены их клонами, освобождая место, используемое для хранения дубликатов.
Связанные вопросы по сообществам Apple и форумам MacRumors не имеют ничего.
Ответы:
Есть несколько сценариев с открытым исходным кодом альфа-качества, которые пытаются это сделать - https://github.com/ranvel/clonefile-dedup
источник
cp -c
, который отбрасывает все метаданные исходного файла (владелец, разрешение, расширенные атрибуты и т. Д.). И нет никаких причин, по которым это нельзя было бы просто сделать с помощью сценария оболочки, вызывающегоsqlite3
напрямую - вместо этого вы должны установить Python 3, что означает его запрет на доступ не администраторам, которые не могут изменять настройки для запуска без знака / без App-Store подписал код.У меня была такая же проблема , и написал небольшой скрипт , чтобы сделать это , используя родной
cp
,mv
,jdupes
(для скорости), а такжеgcp
(для сохранения метаданных). Надеюсь это поможет!Преимущество перед другими решениями:
источник
Смотрите также https://github.com/deckarep/apfs-compactor , который также является всего лишь прототипом.
источник
Проверьте diskDedupe http://www.diskdedupe.com Он делает именно то, что вы ищете.
Он просто имеет две кнопки (сканирование и дедупликация) и поддерживает все метаданные при замене дубликата клоном оригинала.
Я использовал это во всех моих архивах.
источник