Новая функция «Версии» в Lion создает скрытые файлы, в которых хранятся старые версии документа, над которым вы работаете, на тот случай, если вы захотите вернуться к какой-то более старой версии документа. Если я перетаскиваю документ в корзину, затем выбираю «Безопасная пустая корзина» в меню «Поиск», надежно ли удаляются скрытые файлы версий вместе с документом?
12
Ответы:
Я думаю, нет, но это не окончательный ответ.
Сначала я создал очень большой (~ 160 МБ) файл .txt и внес изменения в файл в TextEdit. Как и ожидалось, этот файл и его версии были обнаружены в
/.DocumentRevisions-V100/PerUID
. Файлы оказались размером ~ 160 МБls
, но, согласно данным,du -h
они использовали 0B на диске. Количество жестких ссылок для каждого файла было 1. Папка под названием.cs
(хранилище чанков)/.DocumentRevisions-V100
снизилась примерно на 110 МБ.Каждый раз, когда я менял файл, происходило следующее
/.DocumentRevisions-V100
:/.DocumentRevisions-V100/staging/
. Количество жестких ссылок для этого файла равно 1./.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions
. Количество жестких ссылок осталось 1./.DocumentRevisions-V100/.cs
вырос примерно на 2 МБ.Свободное место на диске (
df
) соответствовалоdu
сказанному мной. Свободное пространство значительно уменьшится, а затем вернется почти к тому, что было до сохранения новой версии.Затем я попытался уничтожить файл с помощью Безопасной пустой корзины. OS X, кажется, использует программу, вызываемую
Locum
для безопасного удаления файла. Прикреплениеfs_usage
кLocum
показывает очень много операций чтения и записи в исходный файл .txt. ПокаLocum
он делает свое дело, все версии/.DocumentRevisions-V100/PerUID
могут быть доступны без изменений. ПослеLocum
завершения записи данных, он освобождает исходный файл .txt, и версии/.DocumentRevisions-V100/PerUID
внезапно исчезают.Locum
затем переходит к чему-либо еще в корзине, не касаясь его/.DocumentRevisions-V100
.Все, что находится внутри
/.DocumentRevisions-V100
, не удаляется надежно.РЕДАКТИРОВАТЬ: я должен добавить, что все, что находится внутри,
/.DocumentRevisions-V100
как-то запутано или сжато (папка была всего ~ 120 МБ). Я еще не читал версии или разделы файловой системы обзора Сиракузы ... возможно, там есть подсказки.источник
Я только что проверил это, и кажется, что старые файлы действительно удаляются. Не имеет значения, выбрал ли я Безопасный пустой мусор или просто очистил его, они также были удалены.
Еще немного подробнее:
Чтобы проверить это, я включил пользователя root, чтобы разрешить мне
/.DocumentRevisions-V100
просматривать и файлы внутри. Точную структуру этой папки и ее содержание лучше объяснить в обзоре Льва Джона Сиракузы (Internals, Document Revisions).Я создал пару файлов, затем внес некоторые изменения, сохранив новые версии. Папка с ревизиями заполнялась новыми файлами при сохранении новых версий. В этой папке верхнего уровня есть папка с именем
PerUID
, в которой находятся подпапки для каждой учетной записи пользователя. Каждая папка учетной записи пользователя содержит ряд пронумерованных папок, по одной папке для каждого файла, в котором сохранены ревизии. Таким образом, фактические ревизии сохраняются в виде файлов на несколько уровней ниже в этой иерархии с хэшированными именами файлов. Очистка корзины (в любом случае) приведет к удалению этих файлов, но прежняя структура папок останется на месте.Перед удалением: в
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
этой папке все еще находятся предыдущие версии.После удаления:
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
эта папка все еще существует, но она пуста.Я не проверял другие папки внутри
/.DocumentRevisions-V100/
, поэтому я не проверял базы данных, которые в них содержатся. Сиракузы углубляются в детали, но, похоже, они содержат базы данных для отслеживания изменений и сопоставления файлов пользователя с ревизиями, сохраненными системой. Я совершенно уверен, что там не сохранено содержимое документа, хотя я не уверен насчет имен файлов, и если они присутствуют, хэшированы они или нет.источник